diff --git a/.gradle/8.7/executionHistory/executionHistory.bin b/.gradle/8.7/executionHistory/executionHistory.bin
index 90db9fa8..64d83879 100644
Binary files a/.gradle/8.7/executionHistory/executionHistory.bin and b/.gradle/8.7/executionHistory/executionHistory.bin differ
diff --git a/.gradle/8.7/executionHistory/executionHistory.lock b/.gradle/8.7/executionHistory/executionHistory.lock
index b314368c..1011754a 100644
Binary files a/.gradle/8.7/executionHistory/executionHistory.lock and b/.gradle/8.7/executionHistory/executionHistory.lock differ
diff --git a/.gradle/8.7/fileHashes/fileHashes.bin b/.gradle/8.7/fileHashes/fileHashes.bin
index 7dea6c5b..16c17b90 100644
Binary files a/.gradle/8.7/fileHashes/fileHashes.bin and b/.gradle/8.7/fileHashes/fileHashes.bin differ
diff --git a/.gradle/8.7/fileHashes/fileHashes.lock b/.gradle/8.7/fileHashes/fileHashes.lock
index 7a3aad34..12d3355d 100644
Binary files a/.gradle/8.7/fileHashes/fileHashes.lock and b/.gradle/8.7/fileHashes/fileHashes.lock differ
diff --git a/.gradle/8.7/fileHashes/resourceHashesCache.bin b/.gradle/8.7/fileHashes/resourceHashesCache.bin
index 0f4dccb9..8185bb95 100644
Binary files a/.gradle/8.7/fileHashes/resourceHashesCache.bin and b/.gradle/8.7/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index 0012dfb9..07ff97c2 100644
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/Info.plist b/TidalNetworkTime-xcodebuild-15.4.xcframework/Info.plist
new file mode 100644
index 00000000..7b7c15aa
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/Info.plist
@@ -0,0 +1,90 @@
+
+
+
+
+ AvailableLibraries
+
+
+ BinaryPath
+ TidalNetworkTime.framework/TidalNetworkTime
+ LibraryIdentifier
+ ios-arm64_x86_64-simulator
+ LibraryPath
+ TidalNetworkTime.framework
+ SupportedArchitectures
+
+ arm64
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
+ simulator
+
+
+ BinaryPath
+ TidalNetworkTime.framework/TidalNetworkTime
+ LibraryIdentifier
+ ios-arm64
+ LibraryPath
+ TidalNetworkTime.framework
+ SupportedArchitectures
+
+ arm64
+
+ SupportedPlatform
+ ios
+
+
+ BinaryPath
+ TidalNetworkTime.framework/Versions/A/TidalNetworkTime
+ LibraryIdentifier
+ macos-arm64_x86_64
+ LibraryPath
+ TidalNetworkTime.framework
+ SupportedArchitectures
+
+ arm64
+ x86_64
+
+ SupportedPlatform
+ macos
+
+
+ BinaryPath
+ TidalNetworkTime.framework/TidalNetworkTime
+ LibraryIdentifier
+ tvos-arm64
+ LibraryPath
+ TidalNetworkTime.framework
+ SupportedArchitectures
+
+ arm64
+
+ SupportedPlatform
+ tvos
+
+
+ BinaryPath
+ TidalNetworkTime.framework/TidalNetworkTime
+ LibraryIdentifier
+ tvos-arm64_x86_64-simulator
+ LibraryPath
+ TidalNetworkTime.framework
+ SupportedArchitectures
+
+ arm64
+ x86_64
+
+ SupportedPlatform
+ tvos
+ SupportedPlatformVariant
+ simulator
+
+
+ CFBundlePackageType
+ XFWK
+ XCFrameworkFormatVersion
+ 1.0
+
+
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64/TidalNetworkTime.framework/Headers/TidalNetworkTime.h b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64/TidalNetworkTime.framework/Headers/TidalNetworkTime.h
new file mode 100644
index 00000000..3d28f598
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64/TidalNetworkTime.framework/Headers/TidalNetworkTime.h
@@ -0,0 +1,435 @@
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+
+@class TNTProtocolFamily, TNTKotlinArray, TNTNTPVersion, TNTKotlinEnumCompanion, TNTKotlinEnum, TNTNTPServer, TNTKotlinThrowable, TNTKotlinException, TNTKotlinRuntimeException, TNTKotlinIllegalStateException, TNTKotlinCancellationException, TNTKotlinUnit;
+
+@protocol TNTKotlinComparable, TNTKotlinx_coroutines_coreJob, TNTKotlinIterator, TNTKotlinx_coroutines_coreChildHandle, TNTKotlinx_coroutines_coreChildJob, TNTKotlinx_coroutines_coreDisposableHandle, TNTKotlinSequence, TNTKotlinx_coroutines_coreSelectClause0, TNTKotlinCoroutineContextKey, TNTKotlinCoroutineContextElement, TNTKotlinCoroutineContext, TNTKotlinx_coroutines_coreParentJob, TNTKotlinx_coroutines_coreSelectInstance, TNTKotlinx_coroutines_coreSelectClause;
+
+NS_ASSUME_NONNULL_BEGIN
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-warning-option"
+#pragma clang diagnostic ignored "-Wincompatible-property-type"
+#pragma clang diagnostic ignored "-Wnullability"
+
+#pragma push_macro("_Nullable_result")
+#if !__has_feature(nullability_nullable_result)
+#undef _Nullable_result
+#define _Nullable_result _Nullable
+#endif
+
+__attribute__((swift_name("KotlinBase")))
+@interface TNTBase : NSObject
+- (instancetype)init __attribute__((unavailable));
++ (instancetype)new __attribute__((unavailable));
++ (void)initialize __attribute__((objc_requires_super));
+@end
+
+@interface TNTBase (TNTBaseCopying)
+@end
+
+__attribute__((swift_name("KotlinMutableSet")))
+@interface TNTMutableSet : NSMutableSet
+@end
+
+__attribute__((swift_name("KotlinMutableDictionary")))
+@interface TNTMutableDictionary : NSMutableDictionary
+@end
+
+@interface NSError (NSErrorTNTKotlinException)
+@property (readonly) id _Nullable kotlinException;
+@end
+
+__attribute__((swift_name("KotlinNumber")))
+@interface TNTNumber : NSNumber
+- (instancetype)initWithChar:(char)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedChar:(unsigned char)value __attribute__((unavailable));
+- (instancetype)initWithShort:(short)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedShort:(unsigned short)value __attribute__((unavailable));
+- (instancetype)initWithInt:(int)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedInt:(unsigned int)value __attribute__((unavailable));
+- (instancetype)initWithLong:(long)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedLong:(unsigned long)value __attribute__((unavailable));
+- (instancetype)initWithLongLong:(long long)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedLongLong:(unsigned long long)value __attribute__((unavailable));
+- (instancetype)initWithFloat:(float)value __attribute__((unavailable));
+- (instancetype)initWithDouble:(double)value __attribute__((unavailable));
+- (instancetype)initWithBool:(BOOL)value __attribute__((unavailable));
+- (instancetype)initWithInteger:(NSInteger)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedInteger:(NSUInteger)value __attribute__((unavailable));
++ (instancetype)numberWithChar:(char)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedChar:(unsigned char)value __attribute__((unavailable));
++ (instancetype)numberWithShort:(short)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedShort:(unsigned short)value __attribute__((unavailable));
++ (instancetype)numberWithInt:(int)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedInt:(unsigned int)value __attribute__((unavailable));
++ (instancetype)numberWithLong:(long)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedLong:(unsigned long)value __attribute__((unavailable));
++ (instancetype)numberWithLongLong:(long long)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedLongLong:(unsigned long long)value __attribute__((unavailable));
++ (instancetype)numberWithFloat:(float)value __attribute__((unavailable));
++ (instancetype)numberWithDouble:(double)value __attribute__((unavailable));
++ (instancetype)numberWithBool:(BOOL)value __attribute__((unavailable));
++ (instancetype)numberWithInteger:(NSInteger)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedInteger:(NSUInteger)value __attribute__((unavailable));
+@end
+
+__attribute__((swift_name("KotlinByte")))
+@interface TNTByte : TNTNumber
+- (instancetype)initWithChar:(char)value;
++ (instancetype)numberWithChar:(char)value;
+@end
+
+__attribute__((swift_name("KotlinUByte")))
+@interface TNTUByte : TNTNumber
+- (instancetype)initWithUnsignedChar:(unsigned char)value;
++ (instancetype)numberWithUnsignedChar:(unsigned char)value;
+@end
+
+__attribute__((swift_name("KotlinShort")))
+@interface TNTShort : TNTNumber
+- (instancetype)initWithShort:(short)value;
++ (instancetype)numberWithShort:(short)value;
+@end
+
+__attribute__((swift_name("KotlinUShort")))
+@interface TNTUShort : TNTNumber
+- (instancetype)initWithUnsignedShort:(unsigned short)value;
++ (instancetype)numberWithUnsignedShort:(unsigned short)value;
+@end
+
+__attribute__((swift_name("KotlinInt")))
+@interface TNTInt : TNTNumber
+- (instancetype)initWithInt:(int)value;
++ (instancetype)numberWithInt:(int)value;
+@end
+
+__attribute__((swift_name("KotlinUInt")))
+@interface TNTUInt : TNTNumber
+- (instancetype)initWithUnsignedInt:(unsigned int)value;
++ (instancetype)numberWithUnsignedInt:(unsigned int)value;
+@end
+
+__attribute__((swift_name("KotlinLong")))
+@interface TNTLong : TNTNumber
+- (instancetype)initWithLongLong:(long long)value;
++ (instancetype)numberWithLongLong:(long long)value;
+@end
+
+__attribute__((swift_name("KotlinULong")))
+@interface TNTULong : TNTNumber
+- (instancetype)initWithUnsignedLongLong:(unsigned long long)value;
++ (instancetype)numberWithUnsignedLongLong:(unsigned long long)value;
+@end
+
+__attribute__((swift_name("KotlinFloat")))
+@interface TNTFloat : TNTNumber
+- (instancetype)initWithFloat:(float)value;
++ (instancetype)numberWithFloat:(float)value;
+@end
+
+__attribute__((swift_name("KotlinDouble")))
+@interface TNTDouble : TNTNumber
+- (instancetype)initWithDouble:(double)value;
++ (instancetype)numberWithDouble:(double)value;
+@end
+
+__attribute__((swift_name("KotlinBoolean")))
+@interface TNTBoolean : TNTNumber
+- (instancetype)initWithBool:(BOOL)value;
++ (instancetype)numberWithBool:(BOOL)value;
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("NTPServer")))
+@interface TNTNTPServer : TNTBase
+- (instancetype)initWithHostName:(NSString *)hostName queryConnectTimeoutMs:(int64_t)queryConnectTimeoutMs queryReadTimeoutMs:(int64_t)queryReadTimeoutMs protocolFamilies:(TNTKotlinArray *)protocolFamilies queriesPerResolvedAddress:(int32_t)queriesPerResolvedAddress waitBetweenResolvedAddressQueriesMs:(int64_t)waitBetweenResolvedAddressQueriesMs ntpVersion:(TNTNTPVersion *)ntpVersion maxRootDelayMs:(int64_t)maxRootDelayMs maxRootDispersionMs:(int64_t)maxRootDispersionMs dnsResolutionTimeoutMs:(int64_t)dnsResolutionTimeoutMs __attribute__((swift_name("init(hostName:queryConnectTimeoutMs:queryReadTimeoutMs:protocolFamilies:queriesPerResolvedAddress:waitBetweenResolvedAddressQueriesMs:ntpVersion:maxRootDelayMs:maxRootDispersionMs:dnsResolutionTimeoutMs:)"))) __attribute__((objc_designated_initializer));
+@property (readonly) int64_t dnsResolutionTimeout __attribute__((swift_name("dnsResolutionTimeout")));
+@property (readonly) NSString *hostName __attribute__((swift_name("hostName")));
+@property (readonly) int64_t maxRootDelay __attribute__((swift_name("maxRootDelay")));
+@property (readonly) int64_t maxRootDispersion __attribute__((swift_name("maxRootDispersion")));
+@property (readonly) TNTNTPVersion *ntpVersion __attribute__((swift_name("ntpVersion")));
+@property (readonly) TNTKotlinArray *protocolFamilies __attribute__((swift_name("protocolFamilies")));
+@property (readonly) int32_t queriesPerResolvedAddress __attribute__((swift_name("queriesPerResolvedAddress")));
+@property (readonly) int64_t queryConnectTimeout __attribute__((swift_name("queryConnectTimeout")));
+@property (readonly) int64_t queryReadTimeout __attribute__((swift_name("queryReadTimeout")));
+@property (readonly) int64_t waitBetweenResolvedAddressQueries __attribute__((swift_name("waitBetweenResolvedAddressQueries")));
+@end
+
+__attribute__((swift_name("KotlinComparable")))
+@protocol TNTKotlinComparable
+@required
+- (int32_t)compareToOther:(id _Nullable)other __attribute__((swift_name("compareTo(other:)")));
+@end
+
+__attribute__((swift_name("KotlinEnum")))
+@interface TNTKotlinEnum : TNTBase
+- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer));
+@property (class, readonly, getter=companion) TNTKotlinEnumCompanion *companion __attribute__((swift_name("companion")));
+- (int32_t)compareToOther:(E)other __attribute__((swift_name("compareTo(other:)")));
+- (BOOL)isEqual:(id _Nullable)other __attribute__((swift_name("isEqual(_:)")));
+- (NSUInteger)hash __attribute__((swift_name("hash()")));
+- (NSString *)description __attribute__((swift_name("description()")));
+@property (readonly) NSString *name __attribute__((swift_name("name")));
+@property (readonly) int32_t ordinal __attribute__((swift_name("ordinal")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("NTPVersion")))
+@interface TNTNTPVersion : TNTKotlinEnum
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
+- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
+@property (class, readonly) TNTNTPVersion *zero __attribute__((swift_name("zero")));
+@property (class, readonly) TNTNTPVersion *one __attribute__((swift_name("one")));
+@property (class, readonly) TNTNTPVersion *two __attribute__((swift_name("two")));
+@property (class, readonly) TNTNTPVersion *three __attribute__((swift_name("three")));
+@property (class, readonly) TNTNTPVersion *four __attribute__((swift_name("four")));
++ (TNTKotlinArray *)values __attribute__((swift_name("values()")));
+@property (class, readonly) NSArray *entries __attribute__((swift_name("entries")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("ProtocolFamily")))
+@interface TNTProtocolFamily : TNTKotlinEnum
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
+- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
+@property (class, readonly) TNTProtocolFamily *inet __attribute__((swift_name("inet")));
+@property (class, readonly) TNTProtocolFamily *inet6 __attribute__((swift_name("inet6")));
++ (TNTKotlinArray *)values __attribute__((swift_name("values()")));
+@property (class, readonly) NSArray *entries __attribute__((swift_name("entries")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("SNTPClient")))
+@interface TNTSNTPClient : TNTBase
+- (instancetype)initWithNtpServers:(TNTKotlinArray *)ntpServers synchronizationIntervalMs:(int64_t)synchronizationIntervalMs backupFilePath:(NSString * _Nullable)backupFilePath __attribute__((swift_name("init(ntpServers:synchronizationIntervalMs:backupFilePath:)"))) __attribute__((objc_designated_initializer));
+
+/**
+ * @note This method converts instances of CancellationException to errors.
+ * Other uncaught Kotlin exceptions are fatal.
+*/
+- (void)blockingEpochTimeMsWithCompletionHandler:(void (^)(id _Nullable, NSError * _Nullable))completionHandler __attribute__((swift_name("blockingEpochTimeMs(completionHandler:)")));
+- (id)disableSynchronization __attribute__((swift_name("disableSynchronization()")));
+- (id)enableSynchronization __attribute__((swift_name("enableSynchronization()")));
+@property (readonly) NSString * _Nullable backupFilePath __attribute__((swift_name("backupFilePath")));
+@property (readonly) id _Nullable epochTimeMs __attribute__((swift_name("epochTimeMs")));
+@property (readonly) TNTKotlinArray *ntpServers __attribute__((swift_name("ntpServers")));
+@property (readonly) int64_t synchronizationInterval __attribute__((swift_name("synchronizationInterval")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("KotlinArray")))
+@interface TNTKotlinArray : TNTBase
++ (instancetype)arrayWithSize:(int32_t)size init:(T _Nullable (^)(TNTInt *))init __attribute__((swift_name("init(size:init:)")));
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
+- (T _Nullable)getIndex:(int32_t)index __attribute__((swift_name("get(index:)")));
+- (id)iterator __attribute__((swift_name("iterator()")));
+- (void)setIndex:(int32_t)index value:(T _Nullable)value __attribute__((swift_name("set(index:value:)")));
+@property (readonly) int32_t size __attribute__((swift_name("size")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("KotlinEnumCompanion")))
+@interface TNTKotlinEnumCompanion : TNTBase
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
++ (instancetype)companion __attribute__((swift_name("init()")));
+@property (class, readonly, getter=shared) TNTKotlinEnumCompanion *shared __attribute__((swift_name("shared")));
+@end
+
+__attribute__((swift_name("KotlinThrowable")))
+@interface TNTKotlinThrowable : TNTBase
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+
+/**
+ * @note annotations
+ * kotlin.experimental.ExperimentalNativeApi
+*/
+- (TNTKotlinArray *)getStackTrace __attribute__((swift_name("getStackTrace()")));
+- (void)printStackTrace __attribute__((swift_name("printStackTrace()")));
+- (NSString *)description __attribute__((swift_name("description()")));
+@property (readonly) TNTKotlinThrowable * _Nullable cause __attribute__((swift_name("cause")));
+@property (readonly) NSString * _Nullable message __attribute__((swift_name("message")));
+- (NSError *)asError __attribute__((swift_name("asError()")));
+@end
+
+__attribute__((swift_name("KotlinException")))
+@interface TNTKotlinException : TNTKotlinThrowable
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+__attribute__((swift_name("KotlinRuntimeException")))
+@interface TNTKotlinRuntimeException : TNTKotlinException
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+__attribute__((swift_name("KotlinIllegalStateException")))
+@interface TNTKotlinIllegalStateException : TNTKotlinRuntimeException
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+
+/**
+ * @note annotations
+ * kotlin.SinceKotlin(version="1.4")
+*/
+__attribute__((swift_name("KotlinCancellationException")))
+@interface TNTKotlinCancellationException : TNTKotlinIllegalStateException
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+
+/**
+ * @note annotations
+ * kotlin.SinceKotlin(version="1.3")
+*/
+__attribute__((swift_name("KotlinCoroutineContext")))
+@protocol TNTKotlinCoroutineContext
+@required
+- (id _Nullable)foldInitial:(id _Nullable)initial operation:(id _Nullable (^)(id _Nullable, id))operation __attribute__((swift_name("fold(initial:operation:)")));
+- (id _Nullable)getKey:(id)key __attribute__((swift_name("get(key:)")));
+- (id)minusKeyKey:(id)key __attribute__((swift_name("minusKey(key:)")));
+- (id)plusContext:(id)context __attribute__((swift_name("plus(context:)")));
+@end
+
+__attribute__((swift_name("KotlinCoroutineContextElement")))
+@protocol TNTKotlinCoroutineContextElement
+@required
+@property (readonly) id key __attribute__((swift_name("key")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreJob")))
+@protocol TNTKotlinx_coroutines_coreJob
+@required
+- (id)attachChildChild:(id)child __attribute__((swift_name("attachChild(child:)")));
+- (void)cancelCause:(TNTKotlinCancellationException * _Nullable)cause __attribute__((swift_name("cancel(cause:)")));
+- (TNTKotlinCancellationException *)getCancellationException __attribute__((swift_name("getCancellationException()")));
+- (id)invokeOnCompletionHandler:(void (^)(TNTKotlinThrowable * _Nullable))handler __attribute__((swift_name("invokeOnCompletion(handler:)")));
+- (id)invokeOnCompletionOnCancelling:(BOOL)onCancelling invokeImmediately:(BOOL)invokeImmediately handler:(void (^)(TNTKotlinThrowable * _Nullable))handler __attribute__((swift_name("invokeOnCompletion(onCancelling:invokeImmediately:handler:)")));
+
+/**
+ * @note This method converts instances of CancellationException to errors.
+ * Other uncaught Kotlin exceptions are fatal.
+*/
+- (void)joinWithCompletionHandler:(void (^)(NSError * _Nullable))completionHandler __attribute__((swift_name("join(completionHandler:)")));
+- (id)plusOther:(id)other __attribute__((swift_name("plus(other:)"))) __attribute__((unavailable("Operator '+' on two Job objects is meaningless. Job is a coroutine context element and `+` is a set-sum operator for coroutine contexts. The job to the right of `+` just replaces the job the left of `+`.")));
+- (BOOL)start __attribute__((swift_name("start()")));
+@property (readonly) id children __attribute__((swift_name("children")));
+@property (readonly) BOOL isActive __attribute__((swift_name("isActive")));
+@property (readonly) BOOL isCancelled __attribute__((swift_name("isCancelled")));
+@property (readonly) BOOL isCompleted __attribute__((swift_name("isCompleted")));
+@property (readonly) id onJoin __attribute__((swift_name("onJoin")));
+
+/**
+ * @note annotations
+ * kotlinx.coroutines.ExperimentalCoroutinesApi
+*/
+@property (readonly) id _Nullable parent __attribute__((swift_name("parent")));
+@end
+
+__attribute__((swift_name("KotlinIterator")))
+@protocol TNTKotlinIterator
+@required
+- (BOOL)hasNext __attribute__((swift_name("hasNext()")));
+- (id _Nullable)next __attribute__((swift_name("next()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreDisposableHandle")))
+@protocol TNTKotlinx_coroutines_coreDisposableHandle
+@required
+- (void)dispose __attribute__((swift_name("dispose()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreChildHandle")))
+@protocol TNTKotlinx_coroutines_coreChildHandle
+@required
+- (BOOL)childCancelledCause:(TNTKotlinThrowable *)cause __attribute__((swift_name("childCancelled(cause:)")));
+@property (readonly) id _Nullable parent __attribute__((swift_name("parent")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreChildJob")))
+@protocol TNTKotlinx_coroutines_coreChildJob
+@required
+- (void)parentCancelledParentJob:(id)parentJob __attribute__((swift_name("parentCancelled(parentJob:)")));
+@end
+
+__attribute__((swift_name("KotlinSequence")))
+@protocol TNTKotlinSequence
+@required
+- (id)iterator __attribute__((swift_name("iterator()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreSelectClause")))
+@protocol TNTKotlinx_coroutines_coreSelectClause
+@required
+@property (readonly) id clauseObject __attribute__((swift_name("clauseObject")));
+@property (readonly) TNTKotlinUnit *(^(^ _Nullable onCancellationConstructor)(id, id _Nullable, id _Nullable))(TNTKotlinThrowable *) __attribute__((swift_name("onCancellationConstructor")));
+@property (readonly) id _Nullable (^processResFunc)(id, id _Nullable, id _Nullable) __attribute__((swift_name("processResFunc")));
+@property (readonly) void (^regFunc)(id, id, id _Nullable) __attribute__((swift_name("regFunc")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreSelectClause0")))
+@protocol TNTKotlinx_coroutines_coreSelectClause0
+@required
+@end
+
+__attribute__((swift_name("KotlinCoroutineContextKey")))
+@protocol TNTKotlinCoroutineContextKey
+@required
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreParentJob")))
+@protocol TNTKotlinx_coroutines_coreParentJob
+@required
+- (TNTKotlinCancellationException *)getChildJobCancellationCause __attribute__((swift_name("getChildJobCancellationCause()")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("KotlinUnit")))
+@interface TNTKotlinUnit : TNTBase
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
++ (instancetype)unit __attribute__((swift_name("init()")));
+@property (class, readonly, getter=shared) TNTKotlinUnit *shared __attribute__((swift_name("shared")));
+- (NSString *)description __attribute__((swift_name("description()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreSelectInstance")))
+@protocol TNTKotlinx_coroutines_coreSelectInstance
+@required
+- (void)disposeOnCompletionDisposableHandle:(id)disposableHandle __attribute__((swift_name("disposeOnCompletion(disposableHandle:)")));
+- (void)selectInRegistrationPhaseInternalResult:(id _Nullable)internalResult __attribute__((swift_name("selectInRegistrationPhase(internalResult:)")));
+- (BOOL)trySelectClauseObject:(id)clauseObject result:(id _Nullable)result __attribute__((swift_name("trySelect(clauseObject:result:)")));
+@property (readonly) id context __attribute__((swift_name("context")));
+@end
+
+#pragma pop_macro("_Nullable_result")
+#pragma clang diagnostic pop
+NS_ASSUME_NONNULL_END
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64/TidalNetworkTime.framework/Info.plist b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64/TidalNetworkTime.framework/Info.plist
new file mode 100644
index 00000000..69ba8311
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64/TidalNetworkTime.framework/Info.plist
@@ -0,0 +1,35 @@
+
+
+
+
+ CFBundleExecutable
+ TidalNetworkTime
+ CFBundleIdentifier
+ TidalNetworkTime
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ TidalNetworkTime
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ unspecified
+ CFBundleSupportedPlatforms
+
+ iPhoneOS
+
+ CFBundleVersion
+ unspecified
+ MinimumOSVersion
+ 12.0
+ UIDeviceFamily
+
+ 1
+ 2
+
+ UIRequiredDeviceCapabilities
+
+ arm64
+
+
+
\ No newline at end of file
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64/TidalNetworkTime.framework/Modules/module.modulemap b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64/TidalNetworkTime.framework/Modules/module.modulemap
new file mode 100644
index 00000000..59976568
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64/TidalNetworkTime.framework/Modules/module.modulemap
@@ -0,0 +1,8 @@
+framework module "TidalNetworkTime" {
+ umbrella header "TidalNetworkTime.h"
+
+ export *
+ module * { export * }
+
+ use Foundation
+}
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64/TidalNetworkTime.framework/TidalNetworkTime b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64/TidalNetworkTime.framework/TidalNetworkTime
new file mode 100644
index 00000000..46765b52
Binary files /dev/null and b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64/TidalNetworkTime.framework/TidalNetworkTime differ
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64_x86_64-simulator/TidalNetworkTime.framework/Headers/TidalNetworkTime.h b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64_x86_64-simulator/TidalNetworkTime.framework/Headers/TidalNetworkTime.h
new file mode 100644
index 00000000..3d28f598
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64_x86_64-simulator/TidalNetworkTime.framework/Headers/TidalNetworkTime.h
@@ -0,0 +1,435 @@
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+
+@class TNTProtocolFamily, TNTKotlinArray, TNTNTPVersion, TNTKotlinEnumCompanion, TNTKotlinEnum, TNTNTPServer, TNTKotlinThrowable, TNTKotlinException, TNTKotlinRuntimeException, TNTKotlinIllegalStateException, TNTKotlinCancellationException, TNTKotlinUnit;
+
+@protocol TNTKotlinComparable, TNTKotlinx_coroutines_coreJob, TNTKotlinIterator, TNTKotlinx_coroutines_coreChildHandle, TNTKotlinx_coroutines_coreChildJob, TNTKotlinx_coroutines_coreDisposableHandle, TNTKotlinSequence, TNTKotlinx_coroutines_coreSelectClause0, TNTKotlinCoroutineContextKey, TNTKotlinCoroutineContextElement, TNTKotlinCoroutineContext, TNTKotlinx_coroutines_coreParentJob, TNTKotlinx_coroutines_coreSelectInstance, TNTKotlinx_coroutines_coreSelectClause;
+
+NS_ASSUME_NONNULL_BEGIN
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-warning-option"
+#pragma clang diagnostic ignored "-Wincompatible-property-type"
+#pragma clang diagnostic ignored "-Wnullability"
+
+#pragma push_macro("_Nullable_result")
+#if !__has_feature(nullability_nullable_result)
+#undef _Nullable_result
+#define _Nullable_result _Nullable
+#endif
+
+__attribute__((swift_name("KotlinBase")))
+@interface TNTBase : NSObject
+- (instancetype)init __attribute__((unavailable));
++ (instancetype)new __attribute__((unavailable));
++ (void)initialize __attribute__((objc_requires_super));
+@end
+
+@interface TNTBase (TNTBaseCopying)
+@end
+
+__attribute__((swift_name("KotlinMutableSet")))
+@interface TNTMutableSet : NSMutableSet
+@end
+
+__attribute__((swift_name("KotlinMutableDictionary")))
+@interface TNTMutableDictionary : NSMutableDictionary
+@end
+
+@interface NSError (NSErrorTNTKotlinException)
+@property (readonly) id _Nullable kotlinException;
+@end
+
+__attribute__((swift_name("KotlinNumber")))
+@interface TNTNumber : NSNumber
+- (instancetype)initWithChar:(char)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedChar:(unsigned char)value __attribute__((unavailable));
+- (instancetype)initWithShort:(short)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedShort:(unsigned short)value __attribute__((unavailable));
+- (instancetype)initWithInt:(int)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedInt:(unsigned int)value __attribute__((unavailable));
+- (instancetype)initWithLong:(long)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedLong:(unsigned long)value __attribute__((unavailable));
+- (instancetype)initWithLongLong:(long long)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedLongLong:(unsigned long long)value __attribute__((unavailable));
+- (instancetype)initWithFloat:(float)value __attribute__((unavailable));
+- (instancetype)initWithDouble:(double)value __attribute__((unavailable));
+- (instancetype)initWithBool:(BOOL)value __attribute__((unavailable));
+- (instancetype)initWithInteger:(NSInteger)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedInteger:(NSUInteger)value __attribute__((unavailable));
++ (instancetype)numberWithChar:(char)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedChar:(unsigned char)value __attribute__((unavailable));
++ (instancetype)numberWithShort:(short)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedShort:(unsigned short)value __attribute__((unavailable));
++ (instancetype)numberWithInt:(int)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedInt:(unsigned int)value __attribute__((unavailable));
++ (instancetype)numberWithLong:(long)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedLong:(unsigned long)value __attribute__((unavailable));
++ (instancetype)numberWithLongLong:(long long)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedLongLong:(unsigned long long)value __attribute__((unavailable));
++ (instancetype)numberWithFloat:(float)value __attribute__((unavailable));
++ (instancetype)numberWithDouble:(double)value __attribute__((unavailable));
++ (instancetype)numberWithBool:(BOOL)value __attribute__((unavailable));
++ (instancetype)numberWithInteger:(NSInteger)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedInteger:(NSUInteger)value __attribute__((unavailable));
+@end
+
+__attribute__((swift_name("KotlinByte")))
+@interface TNTByte : TNTNumber
+- (instancetype)initWithChar:(char)value;
++ (instancetype)numberWithChar:(char)value;
+@end
+
+__attribute__((swift_name("KotlinUByte")))
+@interface TNTUByte : TNTNumber
+- (instancetype)initWithUnsignedChar:(unsigned char)value;
++ (instancetype)numberWithUnsignedChar:(unsigned char)value;
+@end
+
+__attribute__((swift_name("KotlinShort")))
+@interface TNTShort : TNTNumber
+- (instancetype)initWithShort:(short)value;
++ (instancetype)numberWithShort:(short)value;
+@end
+
+__attribute__((swift_name("KotlinUShort")))
+@interface TNTUShort : TNTNumber
+- (instancetype)initWithUnsignedShort:(unsigned short)value;
++ (instancetype)numberWithUnsignedShort:(unsigned short)value;
+@end
+
+__attribute__((swift_name("KotlinInt")))
+@interface TNTInt : TNTNumber
+- (instancetype)initWithInt:(int)value;
++ (instancetype)numberWithInt:(int)value;
+@end
+
+__attribute__((swift_name("KotlinUInt")))
+@interface TNTUInt : TNTNumber
+- (instancetype)initWithUnsignedInt:(unsigned int)value;
++ (instancetype)numberWithUnsignedInt:(unsigned int)value;
+@end
+
+__attribute__((swift_name("KotlinLong")))
+@interface TNTLong : TNTNumber
+- (instancetype)initWithLongLong:(long long)value;
++ (instancetype)numberWithLongLong:(long long)value;
+@end
+
+__attribute__((swift_name("KotlinULong")))
+@interface TNTULong : TNTNumber
+- (instancetype)initWithUnsignedLongLong:(unsigned long long)value;
++ (instancetype)numberWithUnsignedLongLong:(unsigned long long)value;
+@end
+
+__attribute__((swift_name("KotlinFloat")))
+@interface TNTFloat : TNTNumber
+- (instancetype)initWithFloat:(float)value;
++ (instancetype)numberWithFloat:(float)value;
+@end
+
+__attribute__((swift_name("KotlinDouble")))
+@interface TNTDouble : TNTNumber
+- (instancetype)initWithDouble:(double)value;
++ (instancetype)numberWithDouble:(double)value;
+@end
+
+__attribute__((swift_name("KotlinBoolean")))
+@interface TNTBoolean : TNTNumber
+- (instancetype)initWithBool:(BOOL)value;
++ (instancetype)numberWithBool:(BOOL)value;
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("NTPServer")))
+@interface TNTNTPServer : TNTBase
+- (instancetype)initWithHostName:(NSString *)hostName queryConnectTimeoutMs:(int64_t)queryConnectTimeoutMs queryReadTimeoutMs:(int64_t)queryReadTimeoutMs protocolFamilies:(TNTKotlinArray *)protocolFamilies queriesPerResolvedAddress:(int32_t)queriesPerResolvedAddress waitBetweenResolvedAddressQueriesMs:(int64_t)waitBetweenResolvedAddressQueriesMs ntpVersion:(TNTNTPVersion *)ntpVersion maxRootDelayMs:(int64_t)maxRootDelayMs maxRootDispersionMs:(int64_t)maxRootDispersionMs dnsResolutionTimeoutMs:(int64_t)dnsResolutionTimeoutMs __attribute__((swift_name("init(hostName:queryConnectTimeoutMs:queryReadTimeoutMs:protocolFamilies:queriesPerResolvedAddress:waitBetweenResolvedAddressQueriesMs:ntpVersion:maxRootDelayMs:maxRootDispersionMs:dnsResolutionTimeoutMs:)"))) __attribute__((objc_designated_initializer));
+@property (readonly) int64_t dnsResolutionTimeout __attribute__((swift_name("dnsResolutionTimeout")));
+@property (readonly) NSString *hostName __attribute__((swift_name("hostName")));
+@property (readonly) int64_t maxRootDelay __attribute__((swift_name("maxRootDelay")));
+@property (readonly) int64_t maxRootDispersion __attribute__((swift_name("maxRootDispersion")));
+@property (readonly) TNTNTPVersion *ntpVersion __attribute__((swift_name("ntpVersion")));
+@property (readonly) TNTKotlinArray *protocolFamilies __attribute__((swift_name("protocolFamilies")));
+@property (readonly) int32_t queriesPerResolvedAddress __attribute__((swift_name("queriesPerResolvedAddress")));
+@property (readonly) int64_t queryConnectTimeout __attribute__((swift_name("queryConnectTimeout")));
+@property (readonly) int64_t queryReadTimeout __attribute__((swift_name("queryReadTimeout")));
+@property (readonly) int64_t waitBetweenResolvedAddressQueries __attribute__((swift_name("waitBetweenResolvedAddressQueries")));
+@end
+
+__attribute__((swift_name("KotlinComparable")))
+@protocol TNTKotlinComparable
+@required
+- (int32_t)compareToOther:(id _Nullable)other __attribute__((swift_name("compareTo(other:)")));
+@end
+
+__attribute__((swift_name("KotlinEnum")))
+@interface TNTKotlinEnum : TNTBase
+- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer));
+@property (class, readonly, getter=companion) TNTKotlinEnumCompanion *companion __attribute__((swift_name("companion")));
+- (int32_t)compareToOther:(E)other __attribute__((swift_name("compareTo(other:)")));
+- (BOOL)isEqual:(id _Nullable)other __attribute__((swift_name("isEqual(_:)")));
+- (NSUInteger)hash __attribute__((swift_name("hash()")));
+- (NSString *)description __attribute__((swift_name("description()")));
+@property (readonly) NSString *name __attribute__((swift_name("name")));
+@property (readonly) int32_t ordinal __attribute__((swift_name("ordinal")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("NTPVersion")))
+@interface TNTNTPVersion : TNTKotlinEnum
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
+- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
+@property (class, readonly) TNTNTPVersion *zero __attribute__((swift_name("zero")));
+@property (class, readonly) TNTNTPVersion *one __attribute__((swift_name("one")));
+@property (class, readonly) TNTNTPVersion *two __attribute__((swift_name("two")));
+@property (class, readonly) TNTNTPVersion *three __attribute__((swift_name("three")));
+@property (class, readonly) TNTNTPVersion *four __attribute__((swift_name("four")));
++ (TNTKotlinArray *)values __attribute__((swift_name("values()")));
+@property (class, readonly) NSArray *entries __attribute__((swift_name("entries")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("ProtocolFamily")))
+@interface TNTProtocolFamily : TNTKotlinEnum
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
+- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
+@property (class, readonly) TNTProtocolFamily *inet __attribute__((swift_name("inet")));
+@property (class, readonly) TNTProtocolFamily *inet6 __attribute__((swift_name("inet6")));
++ (TNTKotlinArray *)values __attribute__((swift_name("values()")));
+@property (class, readonly) NSArray *entries __attribute__((swift_name("entries")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("SNTPClient")))
+@interface TNTSNTPClient : TNTBase
+- (instancetype)initWithNtpServers:(TNTKotlinArray *)ntpServers synchronizationIntervalMs:(int64_t)synchronizationIntervalMs backupFilePath:(NSString * _Nullable)backupFilePath __attribute__((swift_name("init(ntpServers:synchronizationIntervalMs:backupFilePath:)"))) __attribute__((objc_designated_initializer));
+
+/**
+ * @note This method converts instances of CancellationException to errors.
+ * Other uncaught Kotlin exceptions are fatal.
+*/
+- (void)blockingEpochTimeMsWithCompletionHandler:(void (^)(id _Nullable, NSError * _Nullable))completionHandler __attribute__((swift_name("blockingEpochTimeMs(completionHandler:)")));
+- (id)disableSynchronization __attribute__((swift_name("disableSynchronization()")));
+- (id)enableSynchronization __attribute__((swift_name("enableSynchronization()")));
+@property (readonly) NSString * _Nullable backupFilePath __attribute__((swift_name("backupFilePath")));
+@property (readonly) id _Nullable epochTimeMs __attribute__((swift_name("epochTimeMs")));
+@property (readonly) TNTKotlinArray *ntpServers __attribute__((swift_name("ntpServers")));
+@property (readonly) int64_t synchronizationInterval __attribute__((swift_name("synchronizationInterval")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("KotlinArray")))
+@interface TNTKotlinArray : TNTBase
++ (instancetype)arrayWithSize:(int32_t)size init:(T _Nullable (^)(TNTInt *))init __attribute__((swift_name("init(size:init:)")));
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
+- (T _Nullable)getIndex:(int32_t)index __attribute__((swift_name("get(index:)")));
+- (id)iterator __attribute__((swift_name("iterator()")));
+- (void)setIndex:(int32_t)index value:(T _Nullable)value __attribute__((swift_name("set(index:value:)")));
+@property (readonly) int32_t size __attribute__((swift_name("size")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("KotlinEnumCompanion")))
+@interface TNTKotlinEnumCompanion : TNTBase
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
++ (instancetype)companion __attribute__((swift_name("init()")));
+@property (class, readonly, getter=shared) TNTKotlinEnumCompanion *shared __attribute__((swift_name("shared")));
+@end
+
+__attribute__((swift_name("KotlinThrowable")))
+@interface TNTKotlinThrowable : TNTBase
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+
+/**
+ * @note annotations
+ * kotlin.experimental.ExperimentalNativeApi
+*/
+- (TNTKotlinArray *)getStackTrace __attribute__((swift_name("getStackTrace()")));
+- (void)printStackTrace __attribute__((swift_name("printStackTrace()")));
+- (NSString *)description __attribute__((swift_name("description()")));
+@property (readonly) TNTKotlinThrowable * _Nullable cause __attribute__((swift_name("cause")));
+@property (readonly) NSString * _Nullable message __attribute__((swift_name("message")));
+- (NSError *)asError __attribute__((swift_name("asError()")));
+@end
+
+__attribute__((swift_name("KotlinException")))
+@interface TNTKotlinException : TNTKotlinThrowable
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+__attribute__((swift_name("KotlinRuntimeException")))
+@interface TNTKotlinRuntimeException : TNTKotlinException
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+__attribute__((swift_name("KotlinIllegalStateException")))
+@interface TNTKotlinIllegalStateException : TNTKotlinRuntimeException
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+
+/**
+ * @note annotations
+ * kotlin.SinceKotlin(version="1.4")
+*/
+__attribute__((swift_name("KotlinCancellationException")))
+@interface TNTKotlinCancellationException : TNTKotlinIllegalStateException
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+
+/**
+ * @note annotations
+ * kotlin.SinceKotlin(version="1.3")
+*/
+__attribute__((swift_name("KotlinCoroutineContext")))
+@protocol TNTKotlinCoroutineContext
+@required
+- (id _Nullable)foldInitial:(id _Nullable)initial operation:(id _Nullable (^)(id _Nullable, id))operation __attribute__((swift_name("fold(initial:operation:)")));
+- (id _Nullable)getKey:(id)key __attribute__((swift_name("get(key:)")));
+- (id)minusKeyKey:(id)key __attribute__((swift_name("minusKey(key:)")));
+- (id)plusContext:(id)context __attribute__((swift_name("plus(context:)")));
+@end
+
+__attribute__((swift_name("KotlinCoroutineContextElement")))
+@protocol TNTKotlinCoroutineContextElement
+@required
+@property (readonly) id key __attribute__((swift_name("key")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreJob")))
+@protocol TNTKotlinx_coroutines_coreJob
+@required
+- (id)attachChildChild:(id)child __attribute__((swift_name("attachChild(child:)")));
+- (void)cancelCause:(TNTKotlinCancellationException * _Nullable)cause __attribute__((swift_name("cancel(cause:)")));
+- (TNTKotlinCancellationException *)getCancellationException __attribute__((swift_name("getCancellationException()")));
+- (id)invokeOnCompletionHandler:(void (^)(TNTKotlinThrowable * _Nullable))handler __attribute__((swift_name("invokeOnCompletion(handler:)")));
+- (id)invokeOnCompletionOnCancelling:(BOOL)onCancelling invokeImmediately:(BOOL)invokeImmediately handler:(void (^)(TNTKotlinThrowable * _Nullable))handler __attribute__((swift_name("invokeOnCompletion(onCancelling:invokeImmediately:handler:)")));
+
+/**
+ * @note This method converts instances of CancellationException to errors.
+ * Other uncaught Kotlin exceptions are fatal.
+*/
+- (void)joinWithCompletionHandler:(void (^)(NSError * _Nullable))completionHandler __attribute__((swift_name("join(completionHandler:)")));
+- (id)plusOther:(id)other __attribute__((swift_name("plus(other:)"))) __attribute__((unavailable("Operator '+' on two Job objects is meaningless. Job is a coroutine context element and `+` is a set-sum operator for coroutine contexts. The job to the right of `+` just replaces the job the left of `+`.")));
+- (BOOL)start __attribute__((swift_name("start()")));
+@property (readonly) id children __attribute__((swift_name("children")));
+@property (readonly) BOOL isActive __attribute__((swift_name("isActive")));
+@property (readonly) BOOL isCancelled __attribute__((swift_name("isCancelled")));
+@property (readonly) BOOL isCompleted __attribute__((swift_name("isCompleted")));
+@property (readonly) id onJoin __attribute__((swift_name("onJoin")));
+
+/**
+ * @note annotations
+ * kotlinx.coroutines.ExperimentalCoroutinesApi
+*/
+@property (readonly) id _Nullable parent __attribute__((swift_name("parent")));
+@end
+
+__attribute__((swift_name("KotlinIterator")))
+@protocol TNTKotlinIterator
+@required
+- (BOOL)hasNext __attribute__((swift_name("hasNext()")));
+- (id _Nullable)next __attribute__((swift_name("next()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreDisposableHandle")))
+@protocol TNTKotlinx_coroutines_coreDisposableHandle
+@required
+- (void)dispose __attribute__((swift_name("dispose()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreChildHandle")))
+@protocol TNTKotlinx_coroutines_coreChildHandle
+@required
+- (BOOL)childCancelledCause:(TNTKotlinThrowable *)cause __attribute__((swift_name("childCancelled(cause:)")));
+@property (readonly) id _Nullable parent __attribute__((swift_name("parent")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreChildJob")))
+@protocol TNTKotlinx_coroutines_coreChildJob
+@required
+- (void)parentCancelledParentJob:(id)parentJob __attribute__((swift_name("parentCancelled(parentJob:)")));
+@end
+
+__attribute__((swift_name("KotlinSequence")))
+@protocol TNTKotlinSequence
+@required
+- (id)iterator __attribute__((swift_name("iterator()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreSelectClause")))
+@protocol TNTKotlinx_coroutines_coreSelectClause
+@required
+@property (readonly) id clauseObject __attribute__((swift_name("clauseObject")));
+@property (readonly) TNTKotlinUnit *(^(^ _Nullable onCancellationConstructor)(id, id _Nullable, id _Nullable))(TNTKotlinThrowable *) __attribute__((swift_name("onCancellationConstructor")));
+@property (readonly) id _Nullable (^processResFunc)(id, id _Nullable, id _Nullable) __attribute__((swift_name("processResFunc")));
+@property (readonly) void (^regFunc)(id, id, id _Nullable) __attribute__((swift_name("regFunc")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreSelectClause0")))
+@protocol TNTKotlinx_coroutines_coreSelectClause0
+@required
+@end
+
+__attribute__((swift_name("KotlinCoroutineContextKey")))
+@protocol TNTKotlinCoroutineContextKey
+@required
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreParentJob")))
+@protocol TNTKotlinx_coroutines_coreParentJob
+@required
+- (TNTKotlinCancellationException *)getChildJobCancellationCause __attribute__((swift_name("getChildJobCancellationCause()")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("KotlinUnit")))
+@interface TNTKotlinUnit : TNTBase
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
++ (instancetype)unit __attribute__((swift_name("init()")));
+@property (class, readonly, getter=shared) TNTKotlinUnit *shared __attribute__((swift_name("shared")));
+- (NSString *)description __attribute__((swift_name("description()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreSelectInstance")))
+@protocol TNTKotlinx_coroutines_coreSelectInstance
+@required
+- (void)disposeOnCompletionDisposableHandle:(id)disposableHandle __attribute__((swift_name("disposeOnCompletion(disposableHandle:)")));
+- (void)selectInRegistrationPhaseInternalResult:(id _Nullable)internalResult __attribute__((swift_name("selectInRegistrationPhase(internalResult:)")));
+- (BOOL)trySelectClauseObject:(id)clauseObject result:(id _Nullable)result __attribute__((swift_name("trySelect(clauseObject:result:)")));
+@property (readonly) id context __attribute__((swift_name("context")));
+@end
+
+#pragma pop_macro("_Nullable_result")
+#pragma clang diagnostic pop
+NS_ASSUME_NONNULL_END
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64_x86_64-simulator/TidalNetworkTime.framework/Info.plist b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64_x86_64-simulator/TidalNetworkTime.framework/Info.plist
new file mode 100644
index 00000000..f1323344
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64_x86_64-simulator/TidalNetworkTime.framework/Info.plist
@@ -0,0 +1,31 @@
+
+
+
+
+ CFBundleExecutable
+ TidalNetworkTime
+ CFBundleIdentifier
+ TidalNetworkTime
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ TidalNetworkTime
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ unspecified
+ CFBundleSupportedPlatforms
+
+ iPhoneOS
+
+ CFBundleVersion
+ unspecified
+ MinimumOSVersion
+ 12.0
+ UIDeviceFamily
+
+ 1
+ 2
+
+
+
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64_x86_64-simulator/TidalNetworkTime.framework/Modules/module.modulemap b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64_x86_64-simulator/TidalNetworkTime.framework/Modules/module.modulemap
new file mode 100644
index 00000000..1c6c9d43
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64_x86_64-simulator/TidalNetworkTime.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module "TidalNetworkTime" {
+ umbrella header "TidalNetworkTime.h"
+
+ export *
+ module * { export * }
+}
\ No newline at end of file
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64_x86_64-simulator/TidalNetworkTime.framework/TidalNetworkTime b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64_x86_64-simulator/TidalNetworkTime.framework/TidalNetworkTime
new file mode 100644
index 00000000..b0049a4b
Binary files /dev/null and b/TidalNetworkTime-xcodebuild-15.4.xcframework/ios-arm64_x86_64-simulator/TidalNetworkTime.framework/TidalNetworkTime differ
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Headers b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Headers
new file mode 120000
index 00000000..a177d2a6
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Headers
@@ -0,0 +1 @@
+Versions/Current/Headers
\ No newline at end of file
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Modules b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Modules
new file mode 120000
index 00000000..5736f318
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Modules
@@ -0,0 +1 @@
+Versions/Current/Modules
\ No newline at end of file
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Resources b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Resources
new file mode 120000
index 00000000..953ee36f
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Resources
@@ -0,0 +1 @@
+Versions/Current/Resources
\ No newline at end of file
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/TidalNetworkTime b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/TidalNetworkTime
new file mode 120000
index 00000000..c39336e7
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/TidalNetworkTime
@@ -0,0 +1 @@
+Versions/Current/TidalNetworkTime
\ No newline at end of file
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Versions/A/Headers/TidalNetworkTime.h b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Versions/A/Headers/TidalNetworkTime.h
new file mode 100644
index 00000000..3d28f598
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Versions/A/Headers/TidalNetworkTime.h
@@ -0,0 +1,435 @@
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+
+@class TNTProtocolFamily, TNTKotlinArray, TNTNTPVersion, TNTKotlinEnumCompanion, TNTKotlinEnum, TNTNTPServer, TNTKotlinThrowable, TNTKotlinException, TNTKotlinRuntimeException, TNTKotlinIllegalStateException, TNTKotlinCancellationException, TNTKotlinUnit;
+
+@protocol TNTKotlinComparable, TNTKotlinx_coroutines_coreJob, TNTKotlinIterator, TNTKotlinx_coroutines_coreChildHandle, TNTKotlinx_coroutines_coreChildJob, TNTKotlinx_coroutines_coreDisposableHandle, TNTKotlinSequence, TNTKotlinx_coroutines_coreSelectClause0, TNTKotlinCoroutineContextKey, TNTKotlinCoroutineContextElement, TNTKotlinCoroutineContext, TNTKotlinx_coroutines_coreParentJob, TNTKotlinx_coroutines_coreSelectInstance, TNTKotlinx_coroutines_coreSelectClause;
+
+NS_ASSUME_NONNULL_BEGIN
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-warning-option"
+#pragma clang diagnostic ignored "-Wincompatible-property-type"
+#pragma clang diagnostic ignored "-Wnullability"
+
+#pragma push_macro("_Nullable_result")
+#if !__has_feature(nullability_nullable_result)
+#undef _Nullable_result
+#define _Nullable_result _Nullable
+#endif
+
+__attribute__((swift_name("KotlinBase")))
+@interface TNTBase : NSObject
+- (instancetype)init __attribute__((unavailable));
++ (instancetype)new __attribute__((unavailable));
++ (void)initialize __attribute__((objc_requires_super));
+@end
+
+@interface TNTBase (TNTBaseCopying)
+@end
+
+__attribute__((swift_name("KotlinMutableSet")))
+@interface TNTMutableSet : NSMutableSet
+@end
+
+__attribute__((swift_name("KotlinMutableDictionary")))
+@interface TNTMutableDictionary : NSMutableDictionary
+@end
+
+@interface NSError (NSErrorTNTKotlinException)
+@property (readonly) id _Nullable kotlinException;
+@end
+
+__attribute__((swift_name("KotlinNumber")))
+@interface TNTNumber : NSNumber
+- (instancetype)initWithChar:(char)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedChar:(unsigned char)value __attribute__((unavailable));
+- (instancetype)initWithShort:(short)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedShort:(unsigned short)value __attribute__((unavailable));
+- (instancetype)initWithInt:(int)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedInt:(unsigned int)value __attribute__((unavailable));
+- (instancetype)initWithLong:(long)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedLong:(unsigned long)value __attribute__((unavailable));
+- (instancetype)initWithLongLong:(long long)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedLongLong:(unsigned long long)value __attribute__((unavailable));
+- (instancetype)initWithFloat:(float)value __attribute__((unavailable));
+- (instancetype)initWithDouble:(double)value __attribute__((unavailable));
+- (instancetype)initWithBool:(BOOL)value __attribute__((unavailable));
+- (instancetype)initWithInteger:(NSInteger)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedInteger:(NSUInteger)value __attribute__((unavailable));
++ (instancetype)numberWithChar:(char)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedChar:(unsigned char)value __attribute__((unavailable));
++ (instancetype)numberWithShort:(short)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedShort:(unsigned short)value __attribute__((unavailable));
++ (instancetype)numberWithInt:(int)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedInt:(unsigned int)value __attribute__((unavailable));
++ (instancetype)numberWithLong:(long)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedLong:(unsigned long)value __attribute__((unavailable));
++ (instancetype)numberWithLongLong:(long long)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedLongLong:(unsigned long long)value __attribute__((unavailable));
++ (instancetype)numberWithFloat:(float)value __attribute__((unavailable));
++ (instancetype)numberWithDouble:(double)value __attribute__((unavailable));
++ (instancetype)numberWithBool:(BOOL)value __attribute__((unavailable));
++ (instancetype)numberWithInteger:(NSInteger)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedInteger:(NSUInteger)value __attribute__((unavailable));
+@end
+
+__attribute__((swift_name("KotlinByte")))
+@interface TNTByte : TNTNumber
+- (instancetype)initWithChar:(char)value;
++ (instancetype)numberWithChar:(char)value;
+@end
+
+__attribute__((swift_name("KotlinUByte")))
+@interface TNTUByte : TNTNumber
+- (instancetype)initWithUnsignedChar:(unsigned char)value;
++ (instancetype)numberWithUnsignedChar:(unsigned char)value;
+@end
+
+__attribute__((swift_name("KotlinShort")))
+@interface TNTShort : TNTNumber
+- (instancetype)initWithShort:(short)value;
++ (instancetype)numberWithShort:(short)value;
+@end
+
+__attribute__((swift_name("KotlinUShort")))
+@interface TNTUShort : TNTNumber
+- (instancetype)initWithUnsignedShort:(unsigned short)value;
++ (instancetype)numberWithUnsignedShort:(unsigned short)value;
+@end
+
+__attribute__((swift_name("KotlinInt")))
+@interface TNTInt : TNTNumber
+- (instancetype)initWithInt:(int)value;
++ (instancetype)numberWithInt:(int)value;
+@end
+
+__attribute__((swift_name("KotlinUInt")))
+@interface TNTUInt : TNTNumber
+- (instancetype)initWithUnsignedInt:(unsigned int)value;
++ (instancetype)numberWithUnsignedInt:(unsigned int)value;
+@end
+
+__attribute__((swift_name("KotlinLong")))
+@interface TNTLong : TNTNumber
+- (instancetype)initWithLongLong:(long long)value;
++ (instancetype)numberWithLongLong:(long long)value;
+@end
+
+__attribute__((swift_name("KotlinULong")))
+@interface TNTULong : TNTNumber
+- (instancetype)initWithUnsignedLongLong:(unsigned long long)value;
++ (instancetype)numberWithUnsignedLongLong:(unsigned long long)value;
+@end
+
+__attribute__((swift_name("KotlinFloat")))
+@interface TNTFloat : TNTNumber
+- (instancetype)initWithFloat:(float)value;
++ (instancetype)numberWithFloat:(float)value;
+@end
+
+__attribute__((swift_name("KotlinDouble")))
+@interface TNTDouble : TNTNumber
+- (instancetype)initWithDouble:(double)value;
++ (instancetype)numberWithDouble:(double)value;
+@end
+
+__attribute__((swift_name("KotlinBoolean")))
+@interface TNTBoolean : TNTNumber
+- (instancetype)initWithBool:(BOOL)value;
++ (instancetype)numberWithBool:(BOOL)value;
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("NTPServer")))
+@interface TNTNTPServer : TNTBase
+- (instancetype)initWithHostName:(NSString *)hostName queryConnectTimeoutMs:(int64_t)queryConnectTimeoutMs queryReadTimeoutMs:(int64_t)queryReadTimeoutMs protocolFamilies:(TNTKotlinArray *)protocolFamilies queriesPerResolvedAddress:(int32_t)queriesPerResolvedAddress waitBetweenResolvedAddressQueriesMs:(int64_t)waitBetweenResolvedAddressQueriesMs ntpVersion:(TNTNTPVersion *)ntpVersion maxRootDelayMs:(int64_t)maxRootDelayMs maxRootDispersionMs:(int64_t)maxRootDispersionMs dnsResolutionTimeoutMs:(int64_t)dnsResolutionTimeoutMs __attribute__((swift_name("init(hostName:queryConnectTimeoutMs:queryReadTimeoutMs:protocolFamilies:queriesPerResolvedAddress:waitBetweenResolvedAddressQueriesMs:ntpVersion:maxRootDelayMs:maxRootDispersionMs:dnsResolutionTimeoutMs:)"))) __attribute__((objc_designated_initializer));
+@property (readonly) int64_t dnsResolutionTimeout __attribute__((swift_name("dnsResolutionTimeout")));
+@property (readonly) NSString *hostName __attribute__((swift_name("hostName")));
+@property (readonly) int64_t maxRootDelay __attribute__((swift_name("maxRootDelay")));
+@property (readonly) int64_t maxRootDispersion __attribute__((swift_name("maxRootDispersion")));
+@property (readonly) TNTNTPVersion *ntpVersion __attribute__((swift_name("ntpVersion")));
+@property (readonly) TNTKotlinArray *protocolFamilies __attribute__((swift_name("protocolFamilies")));
+@property (readonly) int32_t queriesPerResolvedAddress __attribute__((swift_name("queriesPerResolvedAddress")));
+@property (readonly) int64_t queryConnectTimeout __attribute__((swift_name("queryConnectTimeout")));
+@property (readonly) int64_t queryReadTimeout __attribute__((swift_name("queryReadTimeout")));
+@property (readonly) int64_t waitBetweenResolvedAddressQueries __attribute__((swift_name("waitBetweenResolvedAddressQueries")));
+@end
+
+__attribute__((swift_name("KotlinComparable")))
+@protocol TNTKotlinComparable
+@required
+- (int32_t)compareToOther:(id _Nullable)other __attribute__((swift_name("compareTo(other:)")));
+@end
+
+__attribute__((swift_name("KotlinEnum")))
+@interface TNTKotlinEnum : TNTBase
+- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer));
+@property (class, readonly, getter=companion) TNTKotlinEnumCompanion *companion __attribute__((swift_name("companion")));
+- (int32_t)compareToOther:(E)other __attribute__((swift_name("compareTo(other:)")));
+- (BOOL)isEqual:(id _Nullable)other __attribute__((swift_name("isEqual(_:)")));
+- (NSUInteger)hash __attribute__((swift_name("hash()")));
+- (NSString *)description __attribute__((swift_name("description()")));
+@property (readonly) NSString *name __attribute__((swift_name("name")));
+@property (readonly) int32_t ordinal __attribute__((swift_name("ordinal")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("NTPVersion")))
+@interface TNTNTPVersion : TNTKotlinEnum
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
+- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
+@property (class, readonly) TNTNTPVersion *zero __attribute__((swift_name("zero")));
+@property (class, readonly) TNTNTPVersion *one __attribute__((swift_name("one")));
+@property (class, readonly) TNTNTPVersion *two __attribute__((swift_name("two")));
+@property (class, readonly) TNTNTPVersion *three __attribute__((swift_name("three")));
+@property (class, readonly) TNTNTPVersion *four __attribute__((swift_name("four")));
++ (TNTKotlinArray *)values __attribute__((swift_name("values()")));
+@property (class, readonly) NSArray *entries __attribute__((swift_name("entries")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("ProtocolFamily")))
+@interface TNTProtocolFamily : TNTKotlinEnum
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
+- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
+@property (class, readonly) TNTProtocolFamily *inet __attribute__((swift_name("inet")));
+@property (class, readonly) TNTProtocolFamily *inet6 __attribute__((swift_name("inet6")));
++ (TNTKotlinArray *)values __attribute__((swift_name("values()")));
+@property (class, readonly) NSArray *entries __attribute__((swift_name("entries")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("SNTPClient")))
+@interface TNTSNTPClient : TNTBase
+- (instancetype)initWithNtpServers:(TNTKotlinArray *)ntpServers synchronizationIntervalMs:(int64_t)synchronizationIntervalMs backupFilePath:(NSString * _Nullable)backupFilePath __attribute__((swift_name("init(ntpServers:synchronizationIntervalMs:backupFilePath:)"))) __attribute__((objc_designated_initializer));
+
+/**
+ * @note This method converts instances of CancellationException to errors.
+ * Other uncaught Kotlin exceptions are fatal.
+*/
+- (void)blockingEpochTimeMsWithCompletionHandler:(void (^)(id _Nullable, NSError * _Nullable))completionHandler __attribute__((swift_name("blockingEpochTimeMs(completionHandler:)")));
+- (id)disableSynchronization __attribute__((swift_name("disableSynchronization()")));
+- (id)enableSynchronization __attribute__((swift_name("enableSynchronization()")));
+@property (readonly) NSString * _Nullable backupFilePath __attribute__((swift_name("backupFilePath")));
+@property (readonly) id _Nullable epochTimeMs __attribute__((swift_name("epochTimeMs")));
+@property (readonly) TNTKotlinArray *ntpServers __attribute__((swift_name("ntpServers")));
+@property (readonly) int64_t synchronizationInterval __attribute__((swift_name("synchronizationInterval")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("KotlinArray")))
+@interface TNTKotlinArray : TNTBase
++ (instancetype)arrayWithSize:(int32_t)size init:(T _Nullable (^)(TNTInt *))init __attribute__((swift_name("init(size:init:)")));
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
+- (T _Nullable)getIndex:(int32_t)index __attribute__((swift_name("get(index:)")));
+- (id)iterator __attribute__((swift_name("iterator()")));
+- (void)setIndex:(int32_t)index value:(T _Nullable)value __attribute__((swift_name("set(index:value:)")));
+@property (readonly) int32_t size __attribute__((swift_name("size")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("KotlinEnumCompanion")))
+@interface TNTKotlinEnumCompanion : TNTBase
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
++ (instancetype)companion __attribute__((swift_name("init()")));
+@property (class, readonly, getter=shared) TNTKotlinEnumCompanion *shared __attribute__((swift_name("shared")));
+@end
+
+__attribute__((swift_name("KotlinThrowable")))
+@interface TNTKotlinThrowable : TNTBase
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+
+/**
+ * @note annotations
+ * kotlin.experimental.ExperimentalNativeApi
+*/
+- (TNTKotlinArray *)getStackTrace __attribute__((swift_name("getStackTrace()")));
+- (void)printStackTrace __attribute__((swift_name("printStackTrace()")));
+- (NSString *)description __attribute__((swift_name("description()")));
+@property (readonly) TNTKotlinThrowable * _Nullable cause __attribute__((swift_name("cause")));
+@property (readonly) NSString * _Nullable message __attribute__((swift_name("message")));
+- (NSError *)asError __attribute__((swift_name("asError()")));
+@end
+
+__attribute__((swift_name("KotlinException")))
+@interface TNTKotlinException : TNTKotlinThrowable
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+__attribute__((swift_name("KotlinRuntimeException")))
+@interface TNTKotlinRuntimeException : TNTKotlinException
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+__attribute__((swift_name("KotlinIllegalStateException")))
+@interface TNTKotlinIllegalStateException : TNTKotlinRuntimeException
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+
+/**
+ * @note annotations
+ * kotlin.SinceKotlin(version="1.4")
+*/
+__attribute__((swift_name("KotlinCancellationException")))
+@interface TNTKotlinCancellationException : TNTKotlinIllegalStateException
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+
+/**
+ * @note annotations
+ * kotlin.SinceKotlin(version="1.3")
+*/
+__attribute__((swift_name("KotlinCoroutineContext")))
+@protocol TNTKotlinCoroutineContext
+@required
+- (id _Nullable)foldInitial:(id _Nullable)initial operation:(id _Nullable (^)(id _Nullable, id))operation __attribute__((swift_name("fold(initial:operation:)")));
+- (id _Nullable)getKey:(id)key __attribute__((swift_name("get(key:)")));
+- (id)minusKeyKey:(id)key __attribute__((swift_name("minusKey(key:)")));
+- (id)plusContext:(id)context __attribute__((swift_name("plus(context:)")));
+@end
+
+__attribute__((swift_name("KotlinCoroutineContextElement")))
+@protocol TNTKotlinCoroutineContextElement
+@required
+@property (readonly) id key __attribute__((swift_name("key")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreJob")))
+@protocol TNTKotlinx_coroutines_coreJob
+@required
+- (id)attachChildChild:(id)child __attribute__((swift_name("attachChild(child:)")));
+- (void)cancelCause:(TNTKotlinCancellationException * _Nullable)cause __attribute__((swift_name("cancel(cause:)")));
+- (TNTKotlinCancellationException *)getCancellationException __attribute__((swift_name("getCancellationException()")));
+- (id)invokeOnCompletionHandler:(void (^)(TNTKotlinThrowable * _Nullable))handler __attribute__((swift_name("invokeOnCompletion(handler:)")));
+- (id)invokeOnCompletionOnCancelling:(BOOL)onCancelling invokeImmediately:(BOOL)invokeImmediately handler:(void (^)(TNTKotlinThrowable * _Nullable))handler __attribute__((swift_name("invokeOnCompletion(onCancelling:invokeImmediately:handler:)")));
+
+/**
+ * @note This method converts instances of CancellationException to errors.
+ * Other uncaught Kotlin exceptions are fatal.
+*/
+- (void)joinWithCompletionHandler:(void (^)(NSError * _Nullable))completionHandler __attribute__((swift_name("join(completionHandler:)")));
+- (id)plusOther:(id)other __attribute__((swift_name("plus(other:)"))) __attribute__((unavailable("Operator '+' on two Job objects is meaningless. Job is a coroutine context element and `+` is a set-sum operator for coroutine contexts. The job to the right of `+` just replaces the job the left of `+`.")));
+- (BOOL)start __attribute__((swift_name("start()")));
+@property (readonly) id children __attribute__((swift_name("children")));
+@property (readonly) BOOL isActive __attribute__((swift_name("isActive")));
+@property (readonly) BOOL isCancelled __attribute__((swift_name("isCancelled")));
+@property (readonly) BOOL isCompleted __attribute__((swift_name("isCompleted")));
+@property (readonly) id onJoin __attribute__((swift_name("onJoin")));
+
+/**
+ * @note annotations
+ * kotlinx.coroutines.ExperimentalCoroutinesApi
+*/
+@property (readonly) id _Nullable parent __attribute__((swift_name("parent")));
+@end
+
+__attribute__((swift_name("KotlinIterator")))
+@protocol TNTKotlinIterator
+@required
+- (BOOL)hasNext __attribute__((swift_name("hasNext()")));
+- (id _Nullable)next __attribute__((swift_name("next()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreDisposableHandle")))
+@protocol TNTKotlinx_coroutines_coreDisposableHandle
+@required
+- (void)dispose __attribute__((swift_name("dispose()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreChildHandle")))
+@protocol TNTKotlinx_coroutines_coreChildHandle
+@required
+- (BOOL)childCancelledCause:(TNTKotlinThrowable *)cause __attribute__((swift_name("childCancelled(cause:)")));
+@property (readonly) id _Nullable parent __attribute__((swift_name("parent")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreChildJob")))
+@protocol TNTKotlinx_coroutines_coreChildJob
+@required
+- (void)parentCancelledParentJob:(id)parentJob __attribute__((swift_name("parentCancelled(parentJob:)")));
+@end
+
+__attribute__((swift_name("KotlinSequence")))
+@protocol TNTKotlinSequence
+@required
+- (id)iterator __attribute__((swift_name("iterator()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreSelectClause")))
+@protocol TNTKotlinx_coroutines_coreSelectClause
+@required
+@property (readonly) id clauseObject __attribute__((swift_name("clauseObject")));
+@property (readonly) TNTKotlinUnit *(^(^ _Nullable onCancellationConstructor)(id, id _Nullable, id _Nullable))(TNTKotlinThrowable *) __attribute__((swift_name("onCancellationConstructor")));
+@property (readonly) id _Nullable (^processResFunc)(id, id _Nullable, id _Nullable) __attribute__((swift_name("processResFunc")));
+@property (readonly) void (^regFunc)(id, id, id _Nullable) __attribute__((swift_name("regFunc")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreSelectClause0")))
+@protocol TNTKotlinx_coroutines_coreSelectClause0
+@required
+@end
+
+__attribute__((swift_name("KotlinCoroutineContextKey")))
+@protocol TNTKotlinCoroutineContextKey
+@required
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreParentJob")))
+@protocol TNTKotlinx_coroutines_coreParentJob
+@required
+- (TNTKotlinCancellationException *)getChildJobCancellationCause __attribute__((swift_name("getChildJobCancellationCause()")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("KotlinUnit")))
+@interface TNTKotlinUnit : TNTBase
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
++ (instancetype)unit __attribute__((swift_name("init()")));
+@property (class, readonly, getter=shared) TNTKotlinUnit *shared __attribute__((swift_name("shared")));
+- (NSString *)description __attribute__((swift_name("description()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreSelectInstance")))
+@protocol TNTKotlinx_coroutines_coreSelectInstance
+@required
+- (void)disposeOnCompletionDisposableHandle:(id)disposableHandle __attribute__((swift_name("disposeOnCompletion(disposableHandle:)")));
+- (void)selectInRegistrationPhaseInternalResult:(id _Nullable)internalResult __attribute__((swift_name("selectInRegistrationPhase(internalResult:)")));
+- (BOOL)trySelectClauseObject:(id)clauseObject result:(id _Nullable)result __attribute__((swift_name("trySelect(clauseObject:result:)")));
+@property (readonly) id context __attribute__((swift_name("context")));
+@end
+
+#pragma pop_macro("_Nullable_result")
+#pragma clang diagnostic pop
+NS_ASSUME_NONNULL_END
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Versions/A/Modules/module.modulemap b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Versions/A/Modules/module.modulemap
new file mode 100644
index 00000000..1c6c9d43
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Versions/A/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module "TidalNetworkTime" {
+ umbrella header "TidalNetworkTime.h"
+
+ export *
+ module * { export * }
+}
\ No newline at end of file
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Versions/A/Resources/Info.plist b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Versions/A/Resources/Info.plist
new file mode 100644
index 00000000..a6b12ad9
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Versions/A/Resources/Info.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ CFBundleExecutable
+ TidalNetworkTime
+ CFBundleIdentifier
+ TidalNetworkTime
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ TidalNetworkTime
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ unspecified
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ unspecified
+
+
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Versions/A/TidalNetworkTime b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Versions/A/TidalNetworkTime
new file mode 100644
index 00000000..b50ab2c7
Binary files /dev/null and b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Versions/A/TidalNetworkTime differ
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Versions/Current b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Versions/Current
new file mode 120000
index 00000000..8c7e5a66
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/macos-arm64_x86_64/TidalNetworkTime.framework/Versions/Current
@@ -0,0 +1 @@
+A
\ No newline at end of file
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/tvos-arm64/TidalNetworkTime.framework/Headers/TidalNetworkTime.h b/TidalNetworkTime-xcodebuild-15.4.xcframework/tvos-arm64/TidalNetworkTime.framework/Headers/TidalNetworkTime.h
new file mode 100644
index 00000000..3d28f598
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/tvos-arm64/TidalNetworkTime.framework/Headers/TidalNetworkTime.h
@@ -0,0 +1,435 @@
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+
+@class TNTProtocolFamily, TNTKotlinArray, TNTNTPVersion, TNTKotlinEnumCompanion, TNTKotlinEnum, TNTNTPServer, TNTKotlinThrowable, TNTKotlinException, TNTKotlinRuntimeException, TNTKotlinIllegalStateException, TNTKotlinCancellationException, TNTKotlinUnit;
+
+@protocol TNTKotlinComparable, TNTKotlinx_coroutines_coreJob, TNTKotlinIterator, TNTKotlinx_coroutines_coreChildHandle, TNTKotlinx_coroutines_coreChildJob, TNTKotlinx_coroutines_coreDisposableHandle, TNTKotlinSequence, TNTKotlinx_coroutines_coreSelectClause0, TNTKotlinCoroutineContextKey, TNTKotlinCoroutineContextElement, TNTKotlinCoroutineContext, TNTKotlinx_coroutines_coreParentJob, TNTKotlinx_coroutines_coreSelectInstance, TNTKotlinx_coroutines_coreSelectClause;
+
+NS_ASSUME_NONNULL_BEGIN
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-warning-option"
+#pragma clang diagnostic ignored "-Wincompatible-property-type"
+#pragma clang diagnostic ignored "-Wnullability"
+
+#pragma push_macro("_Nullable_result")
+#if !__has_feature(nullability_nullable_result)
+#undef _Nullable_result
+#define _Nullable_result _Nullable
+#endif
+
+__attribute__((swift_name("KotlinBase")))
+@interface TNTBase : NSObject
+- (instancetype)init __attribute__((unavailable));
++ (instancetype)new __attribute__((unavailable));
++ (void)initialize __attribute__((objc_requires_super));
+@end
+
+@interface TNTBase (TNTBaseCopying)
+@end
+
+__attribute__((swift_name("KotlinMutableSet")))
+@interface TNTMutableSet : NSMutableSet
+@end
+
+__attribute__((swift_name("KotlinMutableDictionary")))
+@interface TNTMutableDictionary : NSMutableDictionary
+@end
+
+@interface NSError (NSErrorTNTKotlinException)
+@property (readonly) id _Nullable kotlinException;
+@end
+
+__attribute__((swift_name("KotlinNumber")))
+@interface TNTNumber : NSNumber
+- (instancetype)initWithChar:(char)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedChar:(unsigned char)value __attribute__((unavailable));
+- (instancetype)initWithShort:(short)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedShort:(unsigned short)value __attribute__((unavailable));
+- (instancetype)initWithInt:(int)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedInt:(unsigned int)value __attribute__((unavailable));
+- (instancetype)initWithLong:(long)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedLong:(unsigned long)value __attribute__((unavailable));
+- (instancetype)initWithLongLong:(long long)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedLongLong:(unsigned long long)value __attribute__((unavailable));
+- (instancetype)initWithFloat:(float)value __attribute__((unavailable));
+- (instancetype)initWithDouble:(double)value __attribute__((unavailable));
+- (instancetype)initWithBool:(BOOL)value __attribute__((unavailable));
+- (instancetype)initWithInteger:(NSInteger)value __attribute__((unavailable));
+- (instancetype)initWithUnsignedInteger:(NSUInteger)value __attribute__((unavailable));
++ (instancetype)numberWithChar:(char)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedChar:(unsigned char)value __attribute__((unavailable));
++ (instancetype)numberWithShort:(short)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedShort:(unsigned short)value __attribute__((unavailable));
++ (instancetype)numberWithInt:(int)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedInt:(unsigned int)value __attribute__((unavailable));
++ (instancetype)numberWithLong:(long)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedLong:(unsigned long)value __attribute__((unavailable));
++ (instancetype)numberWithLongLong:(long long)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedLongLong:(unsigned long long)value __attribute__((unavailable));
++ (instancetype)numberWithFloat:(float)value __attribute__((unavailable));
++ (instancetype)numberWithDouble:(double)value __attribute__((unavailable));
++ (instancetype)numberWithBool:(BOOL)value __attribute__((unavailable));
++ (instancetype)numberWithInteger:(NSInteger)value __attribute__((unavailable));
++ (instancetype)numberWithUnsignedInteger:(NSUInteger)value __attribute__((unavailable));
+@end
+
+__attribute__((swift_name("KotlinByte")))
+@interface TNTByte : TNTNumber
+- (instancetype)initWithChar:(char)value;
++ (instancetype)numberWithChar:(char)value;
+@end
+
+__attribute__((swift_name("KotlinUByte")))
+@interface TNTUByte : TNTNumber
+- (instancetype)initWithUnsignedChar:(unsigned char)value;
++ (instancetype)numberWithUnsignedChar:(unsigned char)value;
+@end
+
+__attribute__((swift_name("KotlinShort")))
+@interface TNTShort : TNTNumber
+- (instancetype)initWithShort:(short)value;
++ (instancetype)numberWithShort:(short)value;
+@end
+
+__attribute__((swift_name("KotlinUShort")))
+@interface TNTUShort : TNTNumber
+- (instancetype)initWithUnsignedShort:(unsigned short)value;
++ (instancetype)numberWithUnsignedShort:(unsigned short)value;
+@end
+
+__attribute__((swift_name("KotlinInt")))
+@interface TNTInt : TNTNumber
+- (instancetype)initWithInt:(int)value;
++ (instancetype)numberWithInt:(int)value;
+@end
+
+__attribute__((swift_name("KotlinUInt")))
+@interface TNTUInt : TNTNumber
+- (instancetype)initWithUnsignedInt:(unsigned int)value;
++ (instancetype)numberWithUnsignedInt:(unsigned int)value;
+@end
+
+__attribute__((swift_name("KotlinLong")))
+@interface TNTLong : TNTNumber
+- (instancetype)initWithLongLong:(long long)value;
++ (instancetype)numberWithLongLong:(long long)value;
+@end
+
+__attribute__((swift_name("KotlinULong")))
+@interface TNTULong : TNTNumber
+- (instancetype)initWithUnsignedLongLong:(unsigned long long)value;
++ (instancetype)numberWithUnsignedLongLong:(unsigned long long)value;
+@end
+
+__attribute__((swift_name("KotlinFloat")))
+@interface TNTFloat : TNTNumber
+- (instancetype)initWithFloat:(float)value;
++ (instancetype)numberWithFloat:(float)value;
+@end
+
+__attribute__((swift_name("KotlinDouble")))
+@interface TNTDouble : TNTNumber
+- (instancetype)initWithDouble:(double)value;
++ (instancetype)numberWithDouble:(double)value;
+@end
+
+__attribute__((swift_name("KotlinBoolean")))
+@interface TNTBoolean : TNTNumber
+- (instancetype)initWithBool:(BOOL)value;
++ (instancetype)numberWithBool:(BOOL)value;
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("NTPServer")))
+@interface TNTNTPServer : TNTBase
+- (instancetype)initWithHostName:(NSString *)hostName queryConnectTimeoutMs:(int64_t)queryConnectTimeoutMs queryReadTimeoutMs:(int64_t)queryReadTimeoutMs protocolFamilies:(TNTKotlinArray *)protocolFamilies queriesPerResolvedAddress:(int32_t)queriesPerResolvedAddress waitBetweenResolvedAddressQueriesMs:(int64_t)waitBetweenResolvedAddressQueriesMs ntpVersion:(TNTNTPVersion *)ntpVersion maxRootDelayMs:(int64_t)maxRootDelayMs maxRootDispersionMs:(int64_t)maxRootDispersionMs dnsResolutionTimeoutMs:(int64_t)dnsResolutionTimeoutMs __attribute__((swift_name("init(hostName:queryConnectTimeoutMs:queryReadTimeoutMs:protocolFamilies:queriesPerResolvedAddress:waitBetweenResolvedAddressQueriesMs:ntpVersion:maxRootDelayMs:maxRootDispersionMs:dnsResolutionTimeoutMs:)"))) __attribute__((objc_designated_initializer));
+@property (readonly) int64_t dnsResolutionTimeout __attribute__((swift_name("dnsResolutionTimeout")));
+@property (readonly) NSString *hostName __attribute__((swift_name("hostName")));
+@property (readonly) int64_t maxRootDelay __attribute__((swift_name("maxRootDelay")));
+@property (readonly) int64_t maxRootDispersion __attribute__((swift_name("maxRootDispersion")));
+@property (readonly) TNTNTPVersion *ntpVersion __attribute__((swift_name("ntpVersion")));
+@property (readonly) TNTKotlinArray *protocolFamilies __attribute__((swift_name("protocolFamilies")));
+@property (readonly) int32_t queriesPerResolvedAddress __attribute__((swift_name("queriesPerResolvedAddress")));
+@property (readonly) int64_t queryConnectTimeout __attribute__((swift_name("queryConnectTimeout")));
+@property (readonly) int64_t queryReadTimeout __attribute__((swift_name("queryReadTimeout")));
+@property (readonly) int64_t waitBetweenResolvedAddressQueries __attribute__((swift_name("waitBetweenResolvedAddressQueries")));
+@end
+
+__attribute__((swift_name("KotlinComparable")))
+@protocol TNTKotlinComparable
+@required
+- (int32_t)compareToOther:(id _Nullable)other __attribute__((swift_name("compareTo(other:)")));
+@end
+
+__attribute__((swift_name("KotlinEnum")))
+@interface TNTKotlinEnum : TNTBase
+- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer));
+@property (class, readonly, getter=companion) TNTKotlinEnumCompanion *companion __attribute__((swift_name("companion")));
+- (int32_t)compareToOther:(E)other __attribute__((swift_name("compareTo(other:)")));
+- (BOOL)isEqual:(id _Nullable)other __attribute__((swift_name("isEqual(_:)")));
+- (NSUInteger)hash __attribute__((swift_name("hash()")));
+- (NSString *)description __attribute__((swift_name("description()")));
+@property (readonly) NSString *name __attribute__((swift_name("name")));
+@property (readonly) int32_t ordinal __attribute__((swift_name("ordinal")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("NTPVersion")))
+@interface TNTNTPVersion : TNTKotlinEnum
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
+- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
+@property (class, readonly) TNTNTPVersion *zero __attribute__((swift_name("zero")));
+@property (class, readonly) TNTNTPVersion *one __attribute__((swift_name("one")));
+@property (class, readonly) TNTNTPVersion *two __attribute__((swift_name("two")));
+@property (class, readonly) TNTNTPVersion *three __attribute__((swift_name("three")));
+@property (class, readonly) TNTNTPVersion *four __attribute__((swift_name("four")));
++ (TNTKotlinArray *)values __attribute__((swift_name("values()")));
+@property (class, readonly) NSArray *entries __attribute__((swift_name("entries")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("ProtocolFamily")))
+@interface TNTProtocolFamily : TNTKotlinEnum
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
+- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
+@property (class, readonly) TNTProtocolFamily *inet __attribute__((swift_name("inet")));
+@property (class, readonly) TNTProtocolFamily *inet6 __attribute__((swift_name("inet6")));
++ (TNTKotlinArray *)values __attribute__((swift_name("values()")));
+@property (class, readonly) NSArray *entries __attribute__((swift_name("entries")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("SNTPClient")))
+@interface TNTSNTPClient : TNTBase
+- (instancetype)initWithNtpServers:(TNTKotlinArray *)ntpServers synchronizationIntervalMs:(int64_t)synchronizationIntervalMs backupFilePath:(NSString * _Nullable)backupFilePath __attribute__((swift_name("init(ntpServers:synchronizationIntervalMs:backupFilePath:)"))) __attribute__((objc_designated_initializer));
+
+/**
+ * @note This method converts instances of CancellationException to errors.
+ * Other uncaught Kotlin exceptions are fatal.
+*/
+- (void)blockingEpochTimeMsWithCompletionHandler:(void (^)(id _Nullable, NSError * _Nullable))completionHandler __attribute__((swift_name("blockingEpochTimeMs(completionHandler:)")));
+- (id)disableSynchronization __attribute__((swift_name("disableSynchronization()")));
+- (id)enableSynchronization __attribute__((swift_name("enableSynchronization()")));
+@property (readonly) NSString * _Nullable backupFilePath __attribute__((swift_name("backupFilePath")));
+@property (readonly) id _Nullable epochTimeMs __attribute__((swift_name("epochTimeMs")));
+@property (readonly) TNTKotlinArray *ntpServers __attribute__((swift_name("ntpServers")));
+@property (readonly) int64_t synchronizationInterval __attribute__((swift_name("synchronizationInterval")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("KotlinArray")))
+@interface TNTKotlinArray : TNTBase
++ (instancetype)arrayWithSize:(int32_t)size init:(T _Nullable (^)(TNTInt *))init __attribute__((swift_name("init(size:init:)")));
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
+- (T _Nullable)getIndex:(int32_t)index __attribute__((swift_name("get(index:)")));
+- (id)iterator __attribute__((swift_name("iterator()")));
+- (void)setIndex:(int32_t)index value:(T _Nullable)value __attribute__((swift_name("set(index:value:)")));
+@property (readonly) int32_t size __attribute__((swift_name("size")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("KotlinEnumCompanion")))
+@interface TNTKotlinEnumCompanion : TNTBase
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
++ (instancetype)companion __attribute__((swift_name("init()")));
+@property (class, readonly, getter=shared) TNTKotlinEnumCompanion *shared __attribute__((swift_name("shared")));
+@end
+
+__attribute__((swift_name("KotlinThrowable")))
+@interface TNTKotlinThrowable : TNTBase
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+
+/**
+ * @note annotations
+ * kotlin.experimental.ExperimentalNativeApi
+*/
+- (TNTKotlinArray *)getStackTrace __attribute__((swift_name("getStackTrace()")));
+- (void)printStackTrace __attribute__((swift_name("printStackTrace()")));
+- (NSString *)description __attribute__((swift_name("description()")));
+@property (readonly) TNTKotlinThrowable * _Nullable cause __attribute__((swift_name("cause")));
+@property (readonly) NSString * _Nullable message __attribute__((swift_name("message")));
+- (NSError *)asError __attribute__((swift_name("asError()")));
+@end
+
+__attribute__((swift_name("KotlinException")))
+@interface TNTKotlinException : TNTKotlinThrowable
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+__attribute__((swift_name("KotlinRuntimeException")))
+@interface TNTKotlinRuntimeException : TNTKotlinException
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+__attribute__((swift_name("KotlinIllegalStateException")))
+@interface TNTKotlinIllegalStateException : TNTKotlinRuntimeException
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+
+/**
+ * @note annotations
+ * kotlin.SinceKotlin(version="1.4")
+*/
+__attribute__((swift_name("KotlinCancellationException")))
+@interface TNTKotlinCancellationException : TNTKotlinIllegalStateException
+- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
++ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
+- (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithCause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
+- (instancetype)initWithMessage:(NSString * _Nullable)message cause:(TNTKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
+@end
+
+
+/**
+ * @note annotations
+ * kotlin.SinceKotlin(version="1.3")
+*/
+__attribute__((swift_name("KotlinCoroutineContext")))
+@protocol TNTKotlinCoroutineContext
+@required
+- (id _Nullable)foldInitial:(id _Nullable)initial operation:(id _Nullable (^)(id _Nullable, id))operation __attribute__((swift_name("fold(initial:operation:)")));
+- (id _Nullable)getKey:(id)key __attribute__((swift_name("get(key:)")));
+- (id)minusKeyKey:(id)key __attribute__((swift_name("minusKey(key:)")));
+- (id)plusContext:(id)context __attribute__((swift_name("plus(context:)")));
+@end
+
+__attribute__((swift_name("KotlinCoroutineContextElement")))
+@protocol TNTKotlinCoroutineContextElement
+@required
+@property (readonly) id key __attribute__((swift_name("key")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreJob")))
+@protocol TNTKotlinx_coroutines_coreJob
+@required
+- (id)attachChildChild:(id)child __attribute__((swift_name("attachChild(child:)")));
+- (void)cancelCause:(TNTKotlinCancellationException * _Nullable)cause __attribute__((swift_name("cancel(cause:)")));
+- (TNTKotlinCancellationException *)getCancellationException __attribute__((swift_name("getCancellationException()")));
+- (id)invokeOnCompletionHandler:(void (^)(TNTKotlinThrowable * _Nullable))handler __attribute__((swift_name("invokeOnCompletion(handler:)")));
+- (id)invokeOnCompletionOnCancelling:(BOOL)onCancelling invokeImmediately:(BOOL)invokeImmediately handler:(void (^)(TNTKotlinThrowable * _Nullable))handler __attribute__((swift_name("invokeOnCompletion(onCancelling:invokeImmediately:handler:)")));
+
+/**
+ * @note This method converts instances of CancellationException to errors.
+ * Other uncaught Kotlin exceptions are fatal.
+*/
+- (void)joinWithCompletionHandler:(void (^)(NSError * _Nullable))completionHandler __attribute__((swift_name("join(completionHandler:)")));
+- (id)plusOther:(id)other __attribute__((swift_name("plus(other:)"))) __attribute__((unavailable("Operator '+' on two Job objects is meaningless. Job is a coroutine context element and `+` is a set-sum operator for coroutine contexts. The job to the right of `+` just replaces the job the left of `+`.")));
+- (BOOL)start __attribute__((swift_name("start()")));
+@property (readonly) id children __attribute__((swift_name("children")));
+@property (readonly) BOOL isActive __attribute__((swift_name("isActive")));
+@property (readonly) BOOL isCancelled __attribute__((swift_name("isCancelled")));
+@property (readonly) BOOL isCompleted __attribute__((swift_name("isCompleted")));
+@property (readonly) id onJoin __attribute__((swift_name("onJoin")));
+
+/**
+ * @note annotations
+ * kotlinx.coroutines.ExperimentalCoroutinesApi
+*/
+@property (readonly) id _Nullable parent __attribute__((swift_name("parent")));
+@end
+
+__attribute__((swift_name("KotlinIterator")))
+@protocol TNTKotlinIterator
+@required
+- (BOOL)hasNext __attribute__((swift_name("hasNext()")));
+- (id _Nullable)next __attribute__((swift_name("next()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreDisposableHandle")))
+@protocol TNTKotlinx_coroutines_coreDisposableHandle
+@required
+- (void)dispose __attribute__((swift_name("dispose()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreChildHandle")))
+@protocol TNTKotlinx_coroutines_coreChildHandle
+@required
+- (BOOL)childCancelledCause:(TNTKotlinThrowable *)cause __attribute__((swift_name("childCancelled(cause:)")));
+@property (readonly) id _Nullable parent __attribute__((swift_name("parent")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreChildJob")))
+@protocol TNTKotlinx_coroutines_coreChildJob
+@required
+- (void)parentCancelledParentJob:(id)parentJob __attribute__((swift_name("parentCancelled(parentJob:)")));
+@end
+
+__attribute__((swift_name("KotlinSequence")))
+@protocol TNTKotlinSequence
+@required
+- (id)iterator __attribute__((swift_name("iterator()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreSelectClause")))
+@protocol TNTKotlinx_coroutines_coreSelectClause
+@required
+@property (readonly) id clauseObject __attribute__((swift_name("clauseObject")));
+@property (readonly) TNTKotlinUnit *(^(^ _Nullable onCancellationConstructor)(id, id _Nullable, id _Nullable))(TNTKotlinThrowable *) __attribute__((swift_name("onCancellationConstructor")));
+@property (readonly) id _Nullable (^processResFunc)(id, id _Nullable, id _Nullable) __attribute__((swift_name("processResFunc")));
+@property (readonly) void (^regFunc)(id, id, id _Nullable) __attribute__((swift_name("regFunc")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreSelectClause0")))
+@protocol TNTKotlinx_coroutines_coreSelectClause0
+@required
+@end
+
+__attribute__((swift_name("KotlinCoroutineContextKey")))
+@protocol TNTKotlinCoroutineContextKey
+@required
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreParentJob")))
+@protocol TNTKotlinx_coroutines_coreParentJob
+@required
+- (TNTKotlinCancellationException *)getChildJobCancellationCause __attribute__((swift_name("getChildJobCancellationCause()")));
+@end
+
+__attribute__((objc_subclassing_restricted))
+__attribute__((swift_name("KotlinUnit")))
+@interface TNTKotlinUnit : TNTBase
++ (instancetype)alloc __attribute__((unavailable));
++ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
++ (instancetype)unit __attribute__((swift_name("init()")));
+@property (class, readonly, getter=shared) TNTKotlinUnit *shared __attribute__((swift_name("shared")));
+- (NSString *)description __attribute__((swift_name("description()")));
+@end
+
+__attribute__((swift_name("Kotlinx_coroutines_coreSelectInstance")))
+@protocol TNTKotlinx_coroutines_coreSelectInstance
+@required
+- (void)disposeOnCompletionDisposableHandle:(id)disposableHandle __attribute__((swift_name("disposeOnCompletion(disposableHandle:)")));
+- (void)selectInRegistrationPhaseInternalResult:(id _Nullable)internalResult __attribute__((swift_name("selectInRegistrationPhase(internalResult:)")));
+- (BOOL)trySelectClauseObject:(id)clauseObject result:(id _Nullable)result __attribute__((swift_name("trySelect(clauseObject:result:)")));
+@property (readonly) id context __attribute__((swift_name("context")));
+@end
+
+#pragma pop_macro("_Nullable_result")
+#pragma clang diagnostic pop
+NS_ASSUME_NONNULL_END
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/tvos-arm64/TidalNetworkTime.framework/Info.plist b/TidalNetworkTime-xcodebuild-15.4.xcframework/tvos-arm64/TidalNetworkTime.framework/Info.plist
new file mode 100644
index 00000000..cfb59d5a
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/tvos-arm64/TidalNetworkTime.framework/Info.plist
@@ -0,0 +1,30 @@
+
+
+
+
+ CFBundleExecutable
+ TidalNetworkTime
+ CFBundleIdentifier
+ TidalNetworkTime
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ TidalNetworkTime
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ unspecified
+ CFBundleSupportedPlatforms
+
+ AppleTVOS
+
+ CFBundleVersion
+ unspecified
+ MinimumOSVersion
+ 12.0
+ UIDeviceFamily
+
+ 3
+
+
+
\ No newline at end of file
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/tvos-arm64/TidalNetworkTime.framework/Modules/module.modulemap b/TidalNetworkTime-xcodebuild-15.4.xcframework/tvos-arm64/TidalNetworkTime.framework/Modules/module.modulemap
new file mode 100644
index 00000000..59976568
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/tvos-arm64/TidalNetworkTime.framework/Modules/module.modulemap
@@ -0,0 +1,8 @@
+framework module "TidalNetworkTime" {
+ umbrella header "TidalNetworkTime.h"
+
+ export *
+ module * { export * }
+
+ use Foundation
+}
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/tvos-arm64/TidalNetworkTime.framework/TidalNetworkTime b/TidalNetworkTime-xcodebuild-15.4.xcframework/tvos-arm64/TidalNetworkTime.framework/TidalNetworkTime
new file mode 100644
index 00000000..8390e34a
Binary files /dev/null and b/TidalNetworkTime-xcodebuild-15.4.xcframework/tvos-arm64/TidalNetworkTime.framework/TidalNetworkTime differ
diff --git a/TidalNetworkTime-xcodebuild-15.4.xcframework/tvos-arm64_x86_64-simulator/TidalNetworkTime.framework/Headers/TidalNetworkTime.h b/TidalNetworkTime-xcodebuild-15.4.xcframework/tvos-arm64_x86_64-simulator/TidalNetworkTime.framework/Headers/TidalNetworkTime.h
new file mode 100644
index 00000000..3d28f598
--- /dev/null
+++ b/TidalNetworkTime-xcodebuild-15.4.xcframework/tvos-arm64_x86_64-simulator/TidalNetworkTime.framework/Headers/TidalNetworkTime.h
@@ -0,0 +1,435 @@
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+
+@class TNTProtocolFamily, TNTKotlinArray, TNTNTPVersion, TNTKotlinEnumCompanion, TNTKotlinEnum, TNTNTPServer, TNTKotlinThrowable, TNTKotlinException, TNTKotlinRuntimeException, TNTKotlinIllegalStateException, TNTKotlinCancellationException, TNTKotlinUnit;
+
+@protocol TNTKotlinComparable, TNTKotlinx_coroutines_coreJob, TNTKotlinIterator, TNTKotlinx_coroutines_coreChildHandle, TNTKotlinx_coroutines_coreChildJob, TNTKotlinx_coroutines_coreDisposableHandle, TNTKotlinSequence, TNTKotlinx_coroutines_coreSelectClause0, TNTKotlinCoroutineContextKey, TNTKotlinCoroutineContextElement, TNTKotlinCoroutineContext, TNTKotlinx_coroutines_coreParentJob, TNTKotlinx_coroutines_coreSelectInstance, TNTKotlinx_coroutines_coreSelectClause;
+
+NS_ASSUME_NONNULL_BEGIN
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-warning-option"
+#pragma clang diagnostic ignored "-Wincompatible-property-type"
+#pragma clang diagnostic ignored "-Wnullability"
+
+#pragma push_macro("_Nullable_result")
+#if !__has_feature(nullability_nullable_result)
+#undef _Nullable_result
+#define _Nullable_result _Nullable
+#endif
+
+__attribute__((swift_name("KotlinBase")))
+@interface TNTBase : NSObject
+- (instancetype)init __attribute__((unavailable));
++ (instancetype)new __attribute__((unavailable));
++ (void)initialize __attribute__((objc_requires_super));
+@end
+
+@interface TNTBase (TNTBaseCopying)
+@end
+
+__attribute__((swift_name("KotlinMutableSet")))
+@interface TNTMutableSet