| 
					
				 | 
			
			
				@@ -200,6 +200,7 @@ class Manifest: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.repository = repository 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.item_keys = frozenset(item_keys) if item_keys is not None else ITEM_KEYS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.tam_verified = False 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.timestamp = None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @property 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def id_str(self): 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -245,7 +246,13 @@ class Manifest: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         from .item import ManifestItem 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if self.key.tam_required: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             self.config[b'tam_required'] = True 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.timestamp = datetime.utcnow().isoformat() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # self.timestamp needs to be strictly monotonically increasing. Clocks often are not set correctly 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if self.timestamp is None: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.timestamp = datetime.utcnow().isoformat() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            prev_ts = datetime.strptime(self.timestamp, "%Y-%m-%dT%H:%M:%S.%f") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            incremented = (prev_ts + timedelta(microseconds=1)).isoformat() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.timestamp = max(incremented, datetime.utcnow().isoformat()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         manifest = ManifestItem( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             version=1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             archives=StableDict(self.archives.get_raw_dict()), 
			 |