async function fetchModelChanges(oPropertyBag) {
		// if there is the owner property, the model is part of a reuse component.
		// but the changes must still be fetched for the app component
		const oOwnerComponent = oPropertyBag.owner && Component.get(oPropertyBag.owner.id);

		// the functionality still works without component Id, but the FlexState will be initialized again
		// once the component Id is set. This will happen in the instanceCreated hook.
		// This can only be improved once the generated component instance Id is available in the factory config
		const sAppComponentId = oPropertyBag.owner?.id || oPropertyBag.factoryConfig.id || oPropertyBag.factoryConfig.settings?.id;

		const oComponentData = oOwnerComponent?.getComponentData()
			|| oPropertyBag.factoryConfig.componentData
			|| oPropertyBag.factoryConfig.settings?.componentData;
		const sReference = ManifestUtils.getFlexReference({
			manifest: oOwnerComponent?.getManifest() || oPropertyBag.manifest,
			componentData: oComponentData
		});
		try {
			// partialFlexState has to be true as there is no guarantee that the flex bundle is already available at this point
			await FlexState.initialize({
				componentData: oComponentData,
				asyncHints: oPropertyBag.owner?.config.asyncHints || oPropertyBag.factoryConfig.asyncHints,
				componentId: sAppComponentId,
				reference: sReference,
				partialFlexState: true
			});
			const sServiceUrl = ODataUtils.removeOriginSegmentParameters(oPropertyBag.model.getServiceUrl());
			const aRelevantAnnotationChanges = FlexState.getAnnotationChanges(sReference)
			.filter((oAnnotationChange) => oAnnotationChange.getServiceUrl() === sServiceUrl);

			const aReturn = [];
			for (const oAnnotationChange of aRelevantAnnotationChanges) {
				const oChangeHandler = await ChangeHandlerRegistration.getAnnotationChangeHandler({
					changeType: oAnnotationChange.getChangeType()
				});
				aReturn.push(await oChangeHandler.applyChange(oAnnotationChange));
				oAnnotationChange._appliedOnModel = true;
			}
			return aReturn;
		} catch (oError) {
			Log.error("Annotation changes could not be applied.", oError);
			return [];
		}
	}
Callback which is called within the early state of Component processing.
Already triggers the loading of the flexibility changes if the loaded manifest is an application variant.
The processing is only done for components of the type "application"

@param {object} oConfig - Copy of the configuration of loaded component
@param {object} oConfig.asyncHints - Async hints passed from the app index to the core Component processing
@param {object} oManifest - Copy of the manifest of loaded component
@returns {Promise} Resolves after all Manifest changes are applied