|  |  |  | @ -236,13 +236,10 @@ dispatch_queue_t sendingQueue() { | 
		
	
		
			
				|  |  |  |  |     if (remainingAttempts > 0) { | 
		
	
		
			
				|  |  |  |  |         remainingAttempts -= 1; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         [self outgoingMessages:message | 
		
	
		
			
				|  |  |  |  |                    toRecipient:recipient | 
		
	
		
			
				|  |  |  |  |                       inThread:thread | 
		
	
		
			
				|  |  |  |  |                     completion:^(NSArray *messages) { | 
		
	
		
			
				|  |  |  |  |                       TSSubmitMessageRequest *request = | 
		
	
		
			
				|  |  |  |  |                           [[TSSubmitMessageRequest alloc] initWithRecipient:recipient.uniqueId | 
		
	
		
			
				|  |  |  |  |                                                                    messages:messages | 
		
	
		
			
				|  |  |  |  |         NSArray<NSDictionary *> *deviceMessages = [self deviceMessages:message forRecipient:recipient inThread:thread]; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         TSSubmitMessageRequest *request = [[TSSubmitMessageRequest alloc] initWithRecipient:recipient.uniqueId | 
		
	
		
			
				|  |  |  |  |                                                                                    messages:deviceMessages | 
		
	
		
			
				|  |  |  |  |                                                                                       relay:recipient.relay | 
		
	
		
			
				|  |  |  |  |                                                                                   timeStamp:message.timestamp]; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -274,8 +271,7 @@ dispatch_queue_t sendingQueue() { | 
		
	
		
			
				|  |  |  |  |                             [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&e]; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |                         if (e) { | 
		
	
		
			
				|  |  |  |  |                                         DDLogError(@"Failed to serialize response of mismatched devices: %@", | 
		
	
		
			
				|  |  |  |  |                                                    e.description); | 
		
	
		
			
				|  |  |  |  |                             DDLogError(@"Failed to serialize response of mismatched devices: %@", e.description); | 
		
	
		
			
				|  |  |  |  |                         } else { | 
		
	
		
			
				|  |  |  |  |                             [self handleMismatchedDevices:serializedResponse recipient:recipient]; | 
		
	
		
			
				|  |  |  |  |                         } | 
		
	
	
		
			
				
					|  |  |  | @ -323,7 +319,6 @@ dispatch_queue_t sendingQueue() { | 
		
	
		
			
				|  |  |  |  |                         break; | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |             }]; | 
		
	
		
			
				|  |  |  |  |                     }]; | 
		
	
		
			
				|  |  |  |  |     } else { | 
		
	
		
			
				|  |  |  |  |         [self saveMessage:message withState:TSOutgoingMessageStateUnsent]; | 
		
	
		
			
				|  |  |  |  |         BLOCK_SAFE_RUN(failureBlock); | 
		
	
	
		
			
				
					|  |  |  | @ -356,10 +351,10 @@ dispatch_queue_t sendingQueue() { | 
		
	
		
			
				|  |  |  |  |     [self saveMessage:message withState:TSOutgoingMessageStateSent]; | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | - (void)outgoingMessages:(TSOutgoingMessage *)message | 
		
	
		
			
				|  |  |  |  |              toRecipient:(SignalRecipient *)recipient | 
		
	
		
			
				|  |  |  |  | - (NSArray<NSDictionary *> *)deviceMessages:(TSOutgoingMessage *)message | 
		
	
		
			
				|  |  |  |  |                                forRecipient:(SignalRecipient *)recipient | 
		
	
		
			
				|  |  |  |  |                                    inThread:(TSThread *)thread | 
		
	
		
			
				|  |  |  |  |               completion:(messagesQueue)sendMessages { | 
		
	
		
			
				|  |  |  |  | { | 
		
	
		
			
				|  |  |  |  |     NSMutableArray *messagesArray = [NSMutableArray arrayWithCapacity:recipient.devices.count]; | 
		
	
		
			
				|  |  |  |  |     TSStorageManager *storage     = [TSStorageManager sharedManager]; | 
		
	
		
			
				|  |  |  |  |     NSData *plainText             = [self plainTextForMessage:message inThread:thread]; | 
		
	
	
		
			
				
					|  |  |  | @ -381,13 +376,13 @@ dispatch_queue_t sendingQueue() { | 
		
	
		
			
				|  |  |  |  |             if ([exception.name isEqualToString:InvalidDeviceException]) { | 
		
	
		
			
				|  |  |  |  |                 [recipient removeDevices:[NSSet setWithObject:deviceNumber]]; | 
		
	
		
			
				|  |  |  |  |             } else { | 
		
	
		
			
				|  |  |  |  |                 DDLogWarn(@"Failed building message for device: %@ withe error %@", deviceNumber, exception); | 
		
	
		
			
				|  |  |  |  |                 [self processException:exception outgoingMessage:message inThread:thread]; | 
		
	
		
			
				|  |  |  |  |                 return; | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     sendMessages(messagesArray); | 
		
	
		
			
				|  |  |  |  |     return [messagesArray copy]; | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | - (NSDictionary *)encryptedMessageWithPlaintext:(NSData *)plainText | 
		
	
	
		
			
				
					|  |  |  | 
 |