text: "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.isArrayEqual = exports.isTypeOfArray = exports.isConvertible = void 0;
  function isConvertible(target) {
      if (target && target.prototype) {
          if (target.prototype.toASN && target.prototype.fromASN) {
              return true;
          }
          else {
              return isConvertible(target.prototype);
          }
      }
      else {
          return !!(target && target.toASN && target.fromASN);
      }
  }
  exports.isConvertible = isConvertible;
  function isTypeOfArray(target) {
      var _a;
      if (target) {
          const proto = Object.getPrototypeOf(target);
          if (((_a = proto === null || proto === void 0 ? void 0 : proto.prototype) === null || _a === void 0 ? void 0 : _a.constructor) === Array) {
              return true;
          }
          return isTypeOfArray(proto);
      }
      return false;
  }
  exports.isTypeOfArray = isTypeOfArray;
  function isArrayEqual(bytes1, bytes2) {
      if (!(bytes1 && bytes2)) {
          return false;
      }
      if (bytes1.byteLength !== bytes2.byteLength) {
          return false;
      }
      const b1 = new Uint8Array(bytes1);
      const b2 = new Uint8Array(bytes2);
      for (let i = 0; i < bytes1.byteLength; i++) {
          if (b1[i] !== b2[i]) {
              return false;
          }
      }
      return true;
  }
  exports.isArrayEqual = isArrayEqual;
  