ts-essentials

  • Version 10.0.4
  • Published
  • 231 kB
  • No dependencies
  • MIT license

Install

npm i ts-essentials
yarn add ts-essentials
pnpm add ts-essentials

Overview

All essential TypeScript types in one place

Index

Functions

function assert

assert: (condition: any, message?: string) => asserts condition;

    function createFactoryWithConstraint

    createFactoryWithConstraint: <Constraint>() => <Value extends Constraint>(
    value: Value
    ) => Value;

      function isExact

      isExact: <ExpectedShape>() => <ActualShape>(
      x: Exact<ActualShape, ExpectedShape>
      ) => ExpectedShape;

        function noop

        noop: (..._args: unknown[]) => void;

          Classes

          class UnreachableCaseError

          class UnreachableCaseError extends Error {}

            constructor

            constructor(value: never);

              Interfaces

              interface Newable

              interface Newable<ReturnType> {}

                construct signature

                new (...args: any[]): ReturnType;

                  Type Aliases

                  type AnyArray

                  type AnyArray<Type = any> = Array<Type> | ReadonlyArray<Type>;

                    type AnyFunction

                    type AnyFunction<Args extends any[] = any[], ReturnType = any> = (
                    ...args: Args
                    ) => ReturnType;

                      type ArrayOrSingle

                      type ArrayOrSingle<Type> = Type | Type[];

                        type AsyncOrSync

                        type AsyncOrSync<Type> = PromiseLike<Type> | Type;

                          type AsyncOrSyncType

                          type AsyncOrSyncType<AsyncOrSyncType> = AsyncOrSyncType extends AsyncOrSync<
                          infer Type
                          >
                          ? Type
                          : never;

                            type Awaited

                            type Awaited<Type> = Type extends PromiseLike<infer Value> ? Value : never;
                            • Deprecated

                              please use builtin Awaited

                            type Buildable

                            type Buildable<Type> = DeepPartial<DeepWritable<Type>>;

                              type Builtin

                              type Builtin = Primitive | Function | Date | Error | RegExp;

                                type CamelCase

                                type CamelCase<Type> = IsStringLiteral<Type> extends true
                                ? Join<CamelCapitalizer<SplitAnyCase<Type>>>
                                : Type;

                                  type DeepCamelCaseProperties

                                  type DeepCamelCaseProperties<Type> = Type extends Record<string, unknown>
                                  ? {
                                  [Key in keyof Type as CamelCase<Key>]: DeepCamelCaseProperties<Type[Key]>;
                                  }
                                  : Type;

                                    type DeepNonNullable

                                    type DeepNonNullable<Type> = Type extends Builtin
                                    ? NonNullable<Type>
                                    : Type extends Map<infer Keys, infer Values>
                                    ? Map<DeepNonNullable<Keys>, DeepNonNullable<Values>>
                                    : Type extends ReadonlyMap<infer Keys, infer Values>
                                    ? ReadonlyMap<DeepNonNullable<Keys>, DeepNonNullable<Values>>
                                    : Type extends WeakMap<infer Keys, infer Values>
                                    ? WeakMap<DeepNonNullable<Keys>, DeepNonNullable<Values>>
                                    : Type extends Set<infer Values>
                                    ? Set<DeepNonNullable<Values>>
                                    : Type extends ReadonlySet<infer Values>
                                    ? ReadonlySet<DeepNonNullable<Values>>
                                    : Type extends WeakSet<infer Values>
                                    ? WeakSet<DeepNonNullable<Values>>
                                    : Type extends Promise<infer Values>
                                    ? Promise<DeepNonNullable<Values>>
                                    : Type extends {}
                                    ? {
                                    [Key in keyof Type]: DeepNonNullable<Type[Key]>;
                                    }
                                    : NonNullable<Type>;

                                      type DeepNullable

                                      type DeepNullable<Type> = Type extends Builtin
                                      ? Type | null
                                      : Type extends Map<infer Keys, infer Values>
                                      ? Map<DeepNullable<Keys>, DeepNullable<Values>>
                                      : Type extends ReadonlyMap<infer Keys, infer Values>
                                      ? ReadonlyMap<DeepNullable<Keys>, DeepNullable<Values>>
                                      : Type extends WeakMap<infer Keys, infer Values>
                                      ? DeepNullable<Keys> extends object
                                      ? WeakMap<DeepNullable<Keys>, DeepNullable<Values>>
                                      : never
                                      : Type extends Set<infer Values>
                                      ? Set<DeepNullable<Values>>
                                      : Type extends ReadonlySet<infer Values>
                                      ? ReadonlySet<DeepNullable<Values>>
                                      : Type extends WeakSet<infer Values>
                                      ? DeepNullable<Values> extends object
                                      ? WeakSet<DeepNullable<Values>>
                                      : never
                                      : Type extends ReadonlyArray<infer Values>
                                      ? Type extends IsTuple<Type>
                                      ? {
                                      [Key in keyof Type]: DeepNullable<Type[Key]> | null;
                                      }
                                      : Type extends Array<Values>
                                      ? Array<DeepNullable<Values>>
                                      : ReadonlyArray<DeepNullable<Values>>
                                      : Type extends Promise<infer Value>
                                      ? Promise<DeepNullable<Value>>
                                      : Type extends {}
                                      ? {
                                      [Key in keyof Type]: DeepNullable<Type[Key]>;
                                      }
                                      : Type | null;

                                        type DeepOmit

                                        type DeepOmit<Type, Filter> = Type extends Builtin
                                        ? Type
                                        : Type extends Map<infer Keys, infer Values>
                                        ? Filter extends Map<Keys, infer FilterValues>
                                        ? Map<Keys, DeepOmit<Values, FilterValues>>
                                        : Type
                                        : Type extends ReadonlyMap<infer Keys, infer Values>
                                        ? Filter extends ReadonlyMap<Keys, infer FilterValues>
                                        ? ReadonlyMap<Keys, DeepOmit<Values, FilterValues>>
                                        : Type
                                        : Type extends WeakMap<infer Keys, infer Values>
                                        ? Filter extends WeakMap<Keys, infer FilterValues>
                                        ? WeakMap<Keys, DeepOmit<Values, FilterValues>>
                                        : Type
                                        : Type extends Set<infer Values>
                                        ? Filter extends Set<infer FilterValues>
                                        ? Set<DeepOmit<Values, FilterValues>>
                                        : Type
                                        : Type extends ReadonlySet<infer Values>
                                        ? Filter extends ReadonlySet<infer FilterValues>
                                        ? ReadonlySet<DeepOmit<Values, FilterValues>>
                                        : Type
                                        : Type extends WeakSet<infer Values>
                                        ? Filter extends WeakSet<infer FilterValues>
                                        ? WeakSet<DeepOmit<Values, FilterValues>>
                                        : Type
                                        : Type extends Array<infer Values>
                                        ? Filter extends Array<infer FilterValues>
                                        ? Array<DeepOmit<Values, FilterValues>>
                                        : Type
                                        : Type extends Promise<infer Value>
                                        ? Filter extends Promise<infer FilterValue>
                                        ? Promise<DeepOmit<Value, FilterValue>>
                                        : Type
                                        : Filter extends AnyRecord
                                        ? {
                                        [Key in keyof Type as Key extends keyof Filter
                                        ? Filter[Key] extends true
                                        ? never
                                        : Key
                                        : Key]: Key extends keyof Filter
                                        ? DeepOmit<Type[Key], Filter[Key]>
                                        : Type[Key];
                                        }
                                        : never;

                                          type DeepPartial

                                          type DeepPartial<Type> = Type extends Exclude<Builtin, Error>
                                          ? Type
                                          : Type extends Map<infer Keys, infer Values>
                                          ? Map<DeepPartial<Keys>, DeepPartial<Values>>
                                          : Type extends ReadonlyMap<infer Keys, infer Values>
                                          ? ReadonlyMap<DeepPartial<Keys>, DeepPartial<Values>>
                                          : Type extends WeakMap<infer Keys, infer Values>
                                          ? WeakMap<DeepPartial<Keys>, DeepPartial<Values>>
                                          : Type extends Set<infer Values>
                                          ? Set<DeepPartial<Values>>
                                          : Type extends ReadonlySet<infer Values>
                                          ? ReadonlySet<DeepPartial<Values>>
                                          : Type extends WeakSet<infer Values>
                                          ? WeakSet<DeepPartial<Values>>
                                          : Type extends ReadonlyArray<infer Values>
                                          ? Type extends IsTuple<Type>
                                          ? {
                                          [Key in keyof Type]?: DeepPartial<Type[Key]>;
                                          }
                                          : Type extends Array<Values>
                                          ? Array<DeepPartial<Values> | undefined>
                                          : ReadonlyArray<DeepPartial<Values> | undefined>
                                          : Type extends Promise<infer Value>
                                          ? Promise<DeepPartial<Value>>
                                          : Type extends {}
                                          ? {
                                          [Key in keyof Type]?: DeepPartial<Type[Key]>;
                                          }
                                          : IsUnknown<Type> extends true
                                          ? unknown
                                          : Partial<Type>;

                                            type DeepPick

                                            type DeepPick<Type, Filter> = Type extends Builtin
                                            ? Type
                                            : Type extends Map<infer Keys, infer Values>
                                            ? Filter extends Map<Keys, infer FilterValues>
                                            ? Map<Keys, DeepPick<Values, FilterValues>>
                                            : Type
                                            : Type extends ReadonlyMap<infer Keys, infer Values>
                                            ? Filter extends ReadonlyMap<Keys, infer FilterValues>
                                            ? ReadonlyMap<Keys, DeepPick<Values, FilterValues>>
                                            : Type
                                            : Type extends WeakMap<infer Keys, infer Values>
                                            ? Filter extends WeakMap<Keys, infer FilterValues>
                                            ? WeakMap<Keys, DeepPick<Values, FilterValues>>
                                            : Type
                                            : Type extends Set<infer Values>
                                            ? Filter extends Set<infer FilterValues>
                                            ? Set<DeepPick<Values, FilterValues>>
                                            : Type
                                            : Type extends ReadonlySet<infer Values>
                                            ? Filter extends ReadonlySet<infer FilterValues>
                                            ? ReadonlySet<DeepPick<Values, FilterValues>>
                                            : Type
                                            : Type extends WeakSet<infer Values>
                                            ? Filter extends WeakSet<infer FilterValues>
                                            ? WeakSet<DeepPick<Values, FilterValues>>
                                            : Type
                                            : Type extends Array<infer Values>
                                            ? Filter extends Array<infer FilterValues>
                                            ? Array<DeepPick<Values, FilterValues>>
                                            : Type
                                            : Type extends Promise<infer Value>
                                            ? Filter extends Promise<infer FilterValue>
                                            ? Promise<DeepPick<Value, FilterValue>>
                                            : Type
                                            : Filter extends AnyRecord
                                            ? {
                                            [Key in keyof Type as Key extends keyof Filter ? Key : never]: Filter[Key &
                                            keyof Filter] extends true
                                            ? Type[Key]
                                            : Key extends keyof Filter
                                            ? DeepPick<Type[Key], Filter[Key]>
                                            : never;
                                            }
                                            : never;

                                              type DeepReadonly

                                              type DeepReadonly<Type> = Type extends Exclude<Builtin, Error>
                                              ? Type
                                              : Type extends Map<infer Keys, infer Values>
                                              ? ReadonlyMap<DeepReadonly<Keys>, DeepReadonly<Values>>
                                              : Type extends ReadonlyMap<infer Keys, infer Values>
                                              ? ReadonlyMap<DeepReadonly<Keys>, DeepReadonly<Values>>
                                              : Type extends WeakMap<infer Keys, infer Values>
                                              ? WeakMap<DeepReadonly<Keys>, DeepReadonly<Values>>
                                              : Type extends Set<infer Values>
                                              ? ReadonlySet<DeepReadonly<Values>>
                                              : Type extends ReadonlySet<infer Values>
                                              ? ReadonlySet<DeepReadonly<Values>>
                                              : Type extends WeakSet<infer Values>
                                              ? WeakSet<DeepReadonly<Values>>
                                              : Type extends Promise<infer Value>
                                              ? Promise<DeepReadonly<Value>>
                                              : Type extends AnyArray<infer Values>
                                              ? Type extends IsTuple<Type>
                                              ? {
                                              readonly [Key in keyof Type]: DeepReadonly<Type[Key]>;
                                              }
                                              : ReadonlyArray<DeepReadonly<Values>>
                                              : Type extends {}
                                              ? {
                                              readonly [Key in keyof Type]: DeepReadonly<Type[Key]>;
                                              }
                                              : IsUnknown<Type> extends true
                                              ? unknown
                                              : Readonly<Type>;

                                                type DeepRequired

                                                type DeepRequired<Type> = Type extends Error
                                                ? Required<Type>
                                                : Type extends Builtin
                                                ? Type
                                                : Type extends Map<infer Keys, infer Values>
                                                ? Map<DeepRequired<Keys>, DeepRequired<Values>>
                                                : Type extends ReadonlyMap<infer Keys, infer Values>
                                                ? ReadonlyMap<DeepRequired<Keys>, DeepRequired<Values>>
                                                : Type extends WeakMap<infer Keys, infer Values>
                                                ? WeakMap<DeepRequired<Keys>, DeepRequired<Values>>
                                                : Type extends Set<infer Values>
                                                ? Set<DeepRequired<Values>>
                                                : Type extends ReadonlySet<infer Values>
                                                ? ReadonlySet<DeepRequired<Values>>
                                                : Type extends WeakSet<infer Values>
                                                ? WeakSet<DeepRequired<Values>>
                                                : Type extends Promise<infer Value>
                                                ? Promise<DeepRequired<Value>>
                                                : Type extends ReadonlyArray<infer Values>
                                                ? Type extends IsTuple<Type>
                                                ? {
                                                [Key in keyof Type]-?: DeepRequired<Type[Key]>;
                                                }
                                                : Type extends Array<Values>
                                                ? Array<Exclude<DeepRequired<Values>, undefined>>
                                                : ReadonlyArray<Exclude<DeepRequired<Values>, undefined>>
                                                : Type extends {}
                                                ? {
                                                [Key in keyof Type]-?: DeepRequired<Type[Key]>;
                                                }
                                                : Required<Type>;

                                                  type DeepUndefinable

                                                  type DeepUndefinable<Type> = Type extends Builtin
                                                  ? Type | undefined
                                                  : Type extends Map<infer Keys, infer Values>
                                                  ? Map<DeepUndefinable<Keys>, DeepUndefinable<Values>>
                                                  : Type extends ReadonlyMap<infer Keys, infer Values>
                                                  ? ReadonlyMap<DeepUndefinable<Keys>, DeepUndefinable<Values>>
                                                  : Type extends WeakMap<infer Keys, infer Values>
                                                  ? DeepUndefinable<Keys> extends object
                                                  ? WeakMap<DeepUndefinable<Keys>, DeepUndefinable<Values>>
                                                  : never
                                                  : Type extends Set<infer Values>
                                                  ? Set<DeepUndefinable<Values>>
                                                  : Type extends ReadonlySet<infer Values>
                                                  ? ReadonlySet<DeepUndefinable<Values>>
                                                  : Type extends WeakSet<infer Values>
                                                  ? DeepUndefinable<Values> extends object
                                                  ? WeakSet<DeepUndefinable<Values>>
                                                  : never
                                                  : Type extends ReadonlyArray<infer Values>
                                                  ? Type extends IsTuple<Type>
                                                  ? {
                                                  [Key in keyof Type]: DeepUndefinable<Type[Key]> | undefined;
                                                  }
                                                  : Type extends Array<Values>
                                                  ? Array<DeepUndefinable<Values>>
                                                  : ReadonlyArray<DeepUndefinable<Values>>
                                                  : Type extends Promise<infer Value>
                                                  ? Promise<DeepUndefinable<Value>>
                                                  : Type extends {}
                                                  ? {
                                                  [Key in keyof Type]: DeepUndefinable<Type[Key]>;
                                                  }
                                                  : Type | undefined;

                                                    type DeepWritable

                                                    type DeepWritable<Type> = Type extends Exclude<Builtin, Error>
                                                    ? Type
                                                    : Type extends Map<infer Key, infer Value>
                                                    ? Map<DeepWritable<Key>, DeepWritable<Value>>
                                                    : Type extends ReadonlyMap<infer Key, infer Value>
                                                    ? Map<DeepWritable<Key>, DeepWritable<Value>>
                                                    : Type extends WeakMap<infer Key, infer Value>
                                                    ? WeakMap<DeepWritable<Key>, DeepWritable<Value>>
                                                    : Type extends Set<infer Values>
                                                    ? Set<DeepWritable<Values>>
                                                    : Type extends ReadonlySet<infer Values>
                                                    ? Set<DeepWritable<Values>>
                                                    : Type extends WeakSet<infer Values>
                                                    ? WeakSet<DeepWritable<Values>>
                                                    : Type extends Promise<infer Value>
                                                    ? Promise<DeepWritable<Value>>
                                                    : Type extends {}
                                                    ? {
                                                    -readonly [Key in keyof Type]: DeepWritable<Type[Key]>;
                                                    }
                                                    : IsUnknown<Type> extends true
                                                    ? unknown
                                                    : Type;

                                                      type Dictionary

                                                      type Dictionary<Type, Keys extends KeyofBase = string> = {
                                                      [key in Keys]: Type;
                                                      };

                                                        type DictionaryValues

                                                        type DictionaryValues<Type> = Type[keyof Type];
                                                        • Deprecated

                                                          please use ValueOf instead

                                                        type ElementOf

                                                        type ElementOf<Type extends readonly any[]> = Type extends readonly (infer Values)[]
                                                        ? Values
                                                        : never;

                                                          type Exact

                                                          type Exact<TValue, TShape> = [TValue] extends [readonly any[]]
                                                          ? [TShape] extends [readonly any[]]
                                                          ? ArrayExact<TValue, TShape>
                                                          : never
                                                          : [TValue] extends [AnyRecord]
                                                          ? ObjectExact<TValue, TShape>
                                                          : PrimitiveExact<TValue, TShape>;
                                                            type Head<Type extends AnyArray> = Type extends unknown
                                                            ? Type['length'] extends 0
                                                            ? never
                                                            : Type[0]
                                                            : never;

                                                              type IsAny

                                                              type IsAny<Type> = 0 extends 1 & Type ? true : false;

                                                                type IsNever

                                                                type IsNever<Type> = [Type] extends [never] ? true : false;

                                                                  type IsTuple

                                                                  type IsTuple<Type> = Type extends readonly any[]
                                                                  ? any[] extends Type
                                                                  ? never
                                                                  : Type
                                                                  : never;

                                                                    type IsUnknown

                                                                    type IsUnknown<Type> = IsAny<Type> extends true
                                                                    ? false
                                                                    : unknown extends Type
                                                                    ? true
                                                                    : false;

                                                                      type KeyofBase

                                                                      type KeyofBase = keyof any;

                                                                        type MarkOptional

                                                                        type MarkOptional<Type, Keys extends keyof Type> = Type extends Type
                                                                        ? Prettify<Partial<Type> & Required<Omit<Type, Keys | OptionalKeys<Type>>>>
                                                                        : never;

                                                                          type MarkReadonly

                                                                          type MarkReadonly<Type, Keys extends keyof Type> = Type extends Type
                                                                          ? Prettify<
                                                                          Readonly<Type> & Writable<Omit<Type, Keys | ReadonlyKeys<Type & object>>>
                                                                          >
                                                                          : never;

                                                                            type MarkRequired

                                                                            type MarkRequired<Type, Keys extends keyof Type> = Type extends Type
                                                                            ? Prettify<Type & Required<Omit<Type, Exclude<keyof Type, Keys>>>>
                                                                            : never;

                                                                              type MarkWritable

                                                                              type MarkWritable<Type, Keys extends keyof Type> = Type extends Type
                                                                              ? Prettify<
                                                                              Readonly<Type> &
                                                                              Writable<
                                                                              Omit<Type, Exclude<keyof Type, WritableKeys<Type & object> | Keys>>
                                                                              >
                                                                              >
                                                                              : never;

                                                                                type Merge

                                                                                type Merge<Object1, Object2> = Prettify<Omit<Object1, keyof Object2> & Object2>;

                                                                                  type MergeN

                                                                                  type MergeN<Tuple extends readonly any[]> = _MergeN<Tuple, {}>;

                                                                                    type NonEmptyArray

                                                                                    type NonEmptyArray<Type> = [Type, ...Type[]];

                                                                                      type NonEmptyObject

                                                                                      type NonEmptyObject<Object extends AnyRecord> = keyof Object extends never
                                                                                      ? never
                                                                                      : Object;

                                                                                        type NonNever

                                                                                        type NonNever<Type extends {}> = Pick<
                                                                                        Type,
                                                                                        {
                                                                                        [Key in keyof Type]: Type[Key] extends never ? never : Key;
                                                                                        }[keyof Type]
                                                                                        >;

                                                                                          type OmitProperties

                                                                                          type OmitProperties<Type, Value> = {
                                                                                          [Key in keyof Type as Type[Key] extends Value ? never : Key]: Type[Key];
                                                                                          };

                                                                                            type Opaque

                                                                                            type Opaque<Type, Token extends string> = Token extends StringLiteral<Token>
                                                                                            ? Type & WithOpaque<Token>
                                                                                            : never;

                                                                                              type OptionalKeys

                                                                                              type OptionalKeys<Type> = Type extends object
                                                                                              ? keyof {
                                                                                              [Key in keyof Type as Type extends Required<Pick<Type, Key>>
                                                                                              ? never
                                                                                              : Key]: never;
                                                                                              }
                                                                                              : never;

                                                                                                type Paths

                                                                                                type Paths<
                                                                                                Type,
                                                                                                OverridePathOptions extends Partial<PathsOptions> = {}
                                                                                                > = UnsafePaths<
                                                                                                Type,
                                                                                                CreateTypeOptions<PathsOptions, OverridePathOptions, DefaultPathsOptions>
                                                                                                >;

                                                                                                  type PathValue

                                                                                                  type PathValue<Type, StringPath> = GetWithArray<Type, Path<StringPath>>;

                                                                                                    type PickKeys

                                                                                                    type PickKeys<Type, Value> = keyof PickProperties<Type, Value>;

                                                                                                      type PickProperties

                                                                                                      type PickProperties<Type, Value> = {
                                                                                                      [Key in keyof Type as Type[Key] extends Value ? Key : never]: Type[Key];
                                                                                                      };

                                                                                                        type PredicateFunction

                                                                                                        type PredicateFunction = (x: any, ..._z: any[]) => x is any;

                                                                                                          type PredicateType

                                                                                                          type PredicateType<Type extends PredicateFunction> = Type extends (
                                                                                                          target: any,
                                                                                                          ...rest: any[]
                                                                                                          ) => target is infer NarrowedType
                                                                                                          ? NarrowedType
                                                                                                          : never;

                                                                                                            type Prettify

                                                                                                            type Prettify<Type> = Type extends Function
                                                                                                            ? Type
                                                                                                            : Extract<
                                                                                                            {
                                                                                                            [Key in keyof Type]: Type[Key];
                                                                                                            },
                                                                                                            Type
                                                                                                            >;

                                                                                                              type Primitive

                                                                                                              type Primitive = string | number | boolean | bigint | symbol | undefined | null;

                                                                                                                type ReadonlyArrayOrSingle

                                                                                                                type ReadonlyArrayOrSingle<Type> = Type | readonly Type[];

                                                                                                                  type ReadonlyKeys

                                                                                                                  type ReadonlyKeys<Type extends object> = Type extends unknown
                                                                                                                  ? keyof {
                                                                                                                  [Key in keyof Type as IsFullyWritable<Pick<Type, Key>> extends true
                                                                                                                  ? never
                                                                                                                  : Key]: never;
                                                                                                                  }
                                                                                                                  : never;

                                                                                                                    type RequiredKeys

                                                                                                                    type RequiredKeys<Type> = Type extends unknown
                                                                                                                    ? Exclude<keyof Type, OptionalKeys<Type>>
                                                                                                                    : never;

                                                                                                                      type SafeDictionary

                                                                                                                      type SafeDictionary<Type, Keys extends KeyofBase = string> = {
                                                                                                                      [key in Keys]?: Type;
                                                                                                                      };

                                                                                                                        type StrictDeepOmit

                                                                                                                        type StrictDeepOmit<Type, Filter extends DeepModify<Type>> = DeepOmit<Type, Filter>;

                                                                                                                          type StrictDeepPick

                                                                                                                          type StrictDeepPick<Type, Filter extends DeepModify<Type>> = DeepPick<Type, Filter>;

                                                                                                                            type StrictExclude

                                                                                                                            type StrictExclude<UnionType, ExcludedMembers extends UnionType> = Exclude<
                                                                                                                            UnionType,
                                                                                                                            ExcludedMembers
                                                                                                                            >;

                                                                                                                              type StrictExtract

                                                                                                                              type StrictExtract<Type, Union extends Partial<Type>> = Extract<Type, Union>;

                                                                                                                                type StrictOmit

                                                                                                                                type StrictOmit<
                                                                                                                                Type extends AnyRecord,
                                                                                                                                Keys extends keyof Type
                                                                                                                                > = Type extends AnyArray ? never : Omit<Type, Keys>;

                                                                                                                                  type Tail

                                                                                                                                  type Tail<Type extends AnyArray> = Type extends readonly []
                                                                                                                                  ? never
                                                                                                                                  : Type extends readonly [any?, ...infer Rest]
                                                                                                                                  ? Rest
                                                                                                                                  : never;

                                                                                                                                    type Tuple

                                                                                                                                    type Tuple<Type = any> = [Type?, ...Type[]];

                                                                                                                                      type UnionToIntersection

                                                                                                                                      type UnionToIntersection<Union> = (
                                                                                                                                      Union extends any ? (arg: Union) => void : never
                                                                                                                                      ) extends (arg: infer Intersection) => void
                                                                                                                                      ? Intersection
                                                                                                                                      : never;

                                                                                                                                        type ValueOf

                                                                                                                                        type ValueOf<Type> = Type extends Primitive
                                                                                                                                        ? Type
                                                                                                                                        : Type extends AnyArray
                                                                                                                                        ? Type[number]
                                                                                                                                        : Type extends AnyFunction
                                                                                                                                        ? ReturnType<Type>
                                                                                                                                        : Type[keyof Type];

                                                                                                                                          type WithOpaque

                                                                                                                                          type WithOpaque<Token extends string> = {
                                                                                                                                          readonly [__OPAQUE_TYPE__]: Token;
                                                                                                                                          };

                                                                                                                                            type Writable

                                                                                                                                            type Writable<Type> = {
                                                                                                                                            -readonly [Key in keyof Type]: Type[Key];
                                                                                                                                            };

                                                                                                                                              type WritableKeys

                                                                                                                                              type WritableKeys<Type extends object> = Type extends unknown
                                                                                                                                              ? Exclude<keyof Type, ReadonlyKeys<Type>>
                                                                                                                                              : never;

                                                                                                                                                type XOR

                                                                                                                                                type XOR<
                                                                                                                                                Type1,
                                                                                                                                                Type2,
                                                                                                                                                Type3 = unknown,
                                                                                                                                                Type4 = unknown,
                                                                                                                                                Type5 = unknown,
                                                                                                                                                Type6 = unknown,
                                                                                                                                                Type7 = unknown,
                                                                                                                                                Type8 = unknown,
                                                                                                                                                Type9 = unknown,
                                                                                                                                                Type10 = unknown,
                                                                                                                                                Type11 = unknown,
                                                                                                                                                Type12 = unknown,
                                                                                                                                                Type13 = unknown,
                                                                                                                                                Type14 = unknown,
                                                                                                                                                Type15 = unknown,
                                                                                                                                                Type16 = unknown,
                                                                                                                                                Type17 = unknown,
                                                                                                                                                Type18 = unknown,
                                                                                                                                                Type19 = unknown,
                                                                                                                                                Type20 = unknown,
                                                                                                                                                Type21 = unknown,
                                                                                                                                                Type22 = unknown,
                                                                                                                                                Type23 = unknown,
                                                                                                                                                Type24 = unknown,
                                                                                                                                                Type25 = unknown,
                                                                                                                                                Type26 = unknown,
                                                                                                                                                Type27 = unknown,
                                                                                                                                                Type28 = unknown,
                                                                                                                                                Type29 = unknown,
                                                                                                                                                Type30 = unknown,
                                                                                                                                                Type31 = unknown,
                                                                                                                                                Type32 = unknown,
                                                                                                                                                Type33 = unknown,
                                                                                                                                                Type34 = unknown,
                                                                                                                                                Type35 = unknown,
                                                                                                                                                Type36 = unknown,
                                                                                                                                                Type37 = unknown,
                                                                                                                                                Type38 = unknown,
                                                                                                                                                Type39 = unknown,
                                                                                                                                                Type40 = unknown,
                                                                                                                                                Type41 = unknown,
                                                                                                                                                Type42 = unknown,
                                                                                                                                                Type43 = unknown,
                                                                                                                                                Type44 = unknown,
                                                                                                                                                Type45 = unknown,
                                                                                                                                                Type46 = unknown,
                                                                                                                                                Type47 = unknown,
                                                                                                                                                Type48 = unknown,
                                                                                                                                                Type49 = unknown,
                                                                                                                                                Type50 = unknown
                                                                                                                                                > = Prettify<
                                                                                                                                                | (Without<
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type1
                                                                                                                                                > &
                                                                                                                                                Type1)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type2
                                                                                                                                                > &
                                                                                                                                                Type2)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type3
                                                                                                                                                > &
                                                                                                                                                Type3)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type4
                                                                                                                                                > &
                                                                                                                                                Type4)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type5
                                                                                                                                                > &
                                                                                                                                                Type5)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type6
                                                                                                                                                > &
                                                                                                                                                Type6)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type7
                                                                                                                                                > &
                                                                                                                                                Type7)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type8
                                                                                                                                                > &
                                                                                                                                                Type8)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type9
                                                                                                                                                > &
                                                                                                                                                Type9)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type10
                                                                                                                                                > &
                                                                                                                                                Type10)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type11
                                                                                                                                                > &
                                                                                                                                                Type11)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type12
                                                                                                                                                > &
                                                                                                                                                Type12)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type13
                                                                                                                                                > &
                                                                                                                                                Type13)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type14
                                                                                                                                                > &
                                                                                                                                                Type14)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type15
                                                                                                                                                > &
                                                                                                                                                Type15)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type16
                                                                                                                                                > &
                                                                                                                                                Type16)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type17
                                                                                                                                                > &
                                                                                                                                                Type17)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type18
                                                                                                                                                > &
                                                                                                                                                Type18)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type19
                                                                                                                                                > &
                                                                                                                                                Type19)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type20
                                                                                                                                                > &
                                                                                                                                                Type20)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type21
                                                                                                                                                > &
                                                                                                                                                Type21)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type22
                                                                                                                                                > &
                                                                                                                                                Type22)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type23
                                                                                                                                                > &
                                                                                                                                                Type23)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type24
                                                                                                                                                > &
                                                                                                                                                Type24)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type25
                                                                                                                                                > &
                                                                                                                                                Type25)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type26
                                                                                                                                                > &
                                                                                                                                                Type26)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type27
                                                                                                                                                > &
                                                                                                                                                Type27)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type28
                                                                                                                                                > &
                                                                                                                                                Type28)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type29
                                                                                                                                                > &
                                                                                                                                                Type29)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type30
                                                                                                                                                > &
                                                                                                                                                Type30)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type31
                                                                                                                                                > &
                                                                                                                                                Type31)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type32
                                                                                                                                                > &
                                                                                                                                                Type32)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type33
                                                                                                                                                > &
                                                                                                                                                Type33)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type34
                                                                                                                                                > &
                                                                                                                                                Type34)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type35
                                                                                                                                                > &
                                                                                                                                                Type35)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type36
                                                                                                                                                > &
                                                                                                                                                Type36)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type37
                                                                                                                                                > &
                                                                                                                                                Type37)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type38
                                                                                                                                                > &
                                                                                                                                                Type38)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type39
                                                                                                                                                > &
                                                                                                                                                Type39)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type40
                                                                                                                                                > &
                                                                                                                                                Type40)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type41
                                                                                                                                                > &
                                                                                                                                                Type41)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type42
                                                                                                                                                > &
                                                                                                                                                Type42)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type43
                                                                                                                                                > &
                                                                                                                                                Type43)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type44
                                                                                                                                                > &
                                                                                                                                                Type44)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type45
                                                                                                                                                > &
                                                                                                                                                Type45)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type46
                                                                                                                                                > &
                                                                                                                                                Type46)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type47
                                                                                                                                                > &
                                                                                                                                                Type47)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type49 &
                                                                                                                                                Type50,
                                                                                                                                                Type48
                                                                                                                                                > &
                                                                                                                                                Type48)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type50,
                                                                                                                                                Type49
                                                                                                                                                > &
                                                                                                                                                Type49)
                                                                                                                                                | (Without<
                                                                                                                                                Type1 &
                                                                                                                                                Type2 &
                                                                                                                                                Type3 &
                                                                                                                                                Type4 &
                                                                                                                                                Type5 &
                                                                                                                                                Type6 &
                                                                                                                                                Type7 &
                                                                                                                                                Type8 &
                                                                                                                                                Type9 &
                                                                                                                                                Type10 &
                                                                                                                                                Type11 &
                                                                                                                                                Type12 &
                                                                                                                                                Type13 &
                                                                                                                                                Type14 &
                                                                                                                                                Type15 &
                                                                                                                                                Type16 &
                                                                                                                                                Type17 &
                                                                                                                                                Type18 &
                                                                                                                                                Type19 &
                                                                                                                                                Type20 &
                                                                                                                                                Type21 &
                                                                                                                                                Type22 &
                                                                                                                                                Type23 &
                                                                                                                                                Type24 &
                                                                                                                                                Type25 &
                                                                                                                                                Type26 &
                                                                                                                                                Type27 &
                                                                                                                                                Type28 &
                                                                                                                                                Type29 &
                                                                                                                                                Type30 &
                                                                                                                                                Type31 &
                                                                                                                                                Type32 &
                                                                                                                                                Type33 &
                                                                                                                                                Type34 &
                                                                                                                                                Type35 &
                                                                                                                                                Type36 &
                                                                                                                                                Type37 &
                                                                                                                                                Type38 &
                                                                                                                                                Type39 &
                                                                                                                                                Type40 &
                                                                                                                                                Type41 &
                                                                                                                                                Type42 &
                                                                                                                                                Type43 &
                                                                                                                                                Type44 &
                                                                                                                                                Type45 &
                                                                                                                                                Type46 &
                                                                                                                                                Type47 &
                                                                                                                                                Type48 &
                                                                                                                                                Type49,
                                                                                                                                                Type50
                                                                                                                                                > &
                                                                                                                                                Type50)
                                                                                                                                                >;

                                                                                                                                                  Package Files (72)

                                                                                                                                                  Dependencies (0)

                                                                                                                                                  No dependencies.

                                                                                                                                                  Dev Dependencies (13)

                                                                                                                                                  Peer Dependencies (1)

                                                                                                                                                  Badge

                                                                                                                                                  To add a badge like this onejsDocs.io badgeto your package's README, use the codes available below.

                                                                                                                                                  You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/ts-essentials.

                                                                                                                                                  • Markdown
                                                                                                                                                    [![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/ts-essentials)
                                                                                                                                                  • HTML
                                                                                                                                                    <a href="https://www.jsdocs.io/package/ts-essentials"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>