def METHOD_NAME(business: Business,  # pylint: disable=too-many-branches,too-many-locals
            filing: Dict,
            filing_rec: Filing,
            filing_meta: FilingMeta,
            filing_event_data: Dict):  # pylint: disable=too-many-branches
    """Process the incoming incorporation filing."""
    # Extract the filing information for incorporation
    incorp_filing = filing.get('filing', {}).get('incorporationApplication')
    filing_meta.incorporation_application = {}
    if not incorp_filing:
        print(f'IA legal_filing:incorporationApplication missing from {filing_rec.id}')
        raise Exception(f'IA legal_filing:incorporationApplication missing from {filing_rec.id}')
    if business:
        print(f'Business Already Exist: IA legal_filing:incorporationApplication {filing_rec.id}')
        raise Exception(f'Business Already Exist: IA legal_filing:incorporationApplication {filing_rec.id}')
    business_info_obj = incorp_filing.get('nameRequest')
    corp_num = filing['filing']['business']['identifier']
    # Initial insert of the business record
    business = Business()
    business = business_info.update_business_info(corp_num, business, business_info_obj, filing_rec)
    business.send_ar_ind = filing_event_data['c_send_ar_ind']
    business.state = Business.State.ACTIVE
    if nr_number := business_info_obj.get('nrNumber', None):
        filing_meta.incorporation_application = {**filing_meta.incorporation_application,
                                                 **{'nrNumber': nr_number,
                                                    'legalName': business_info_obj.get('legalName', None)}}
    if not business:
        print(f'IA incorporationApplication {filing_rec.id}, Unable to create business.')
        raise Exception(f'IA incorporationApplication {filing_rec.id}, Unable to create business')
    if offices := incorp_filing['offices']:
        update_offices(business, offices)
    if parties := incorp_filing.get('parties'):
        update_parties(business, parties, filing_rec)
    if share_structure := incorp_filing.get('shareStructure'):
        shares.update_share_structure(business, share_structure)
    if name_translations := incorp_filing.get('nameTranslations'):
        aliases.update_aliases(business, name_translations)
    if court_order := incorp_filing.get('courtOrder'):
        filings.update_filing_court_order(filing_rec, court_order)
    if not filing_rec.colin_event_ids:
        # Update the filing json with identifier and founding date.
        ia_json = copy.deepcopy(filing_rec.filing_json)
        if not ia_json['filing'].get('business'):
            ia_json['filing']['business'] = {}
        ia_json['filing']['business']['identifier'] = business.identifier
        ia_json['filing']['business']['legalType'] = business.legal_type
        ia_json['filing']['business']['foundingDate'] = business.founding_date.isoformat()
        filing_rec._filing_json = ia_json  # pylint: disable=protected-access; bypass to update filing data
    return business, filing_rec, filing_meta