Refactor the unstructured text into a valid JSON dictionary. The key names follow the Darwin Core Archive Standard. If a key lacks content, then insert an empty string. Fill in the following JSON structure as required: {"catalogNumber": "", "order": "", "family": "", "scientificName": "", "scientificNameAuthorship": "", "genus": "", "subgenus": "", "specificEpithet": "", "verbatimTaxonRank": "", "infraspecificEpithet": "", "identifiedBy": "", "recordedBy": "", "recordNumber": "", "verbatimEventDate": "", "habitat": "", "occurrenceRemarks": "", "associatedTaxa": "", "country": "", "stateProvince": "", "county": "", "municipality": "", "locality": "", "decimalLatitude": "", "decimalLongitude": "", "verbatimCoordinates": "", "minimumElevationInMeters": "", "maximumElevationInMeters": ""}
  +BD@o poaceae  P capillacea Aristida capillacea rBC   -104.529  )ir     <THF4 19.5595 savannah-like grassland on shallow grovelly soil, with c~uratella and byrsonima. in tufts along the trail, in shade weedy ci!x   dqM EL REFUGIO; 8 MI SW OF LA RESOLANA, ROAD TO LA HUERTA  4K POALES     #dJ v lam.    ENg3Q 1117037  n MEXICO 21070 CH    878 ROGERS MCVAUGH    jalisco |960-11-16 Tk   Aristida T)]  
{"catalogNumber": "1117037", "order": "Poales", "family": "Poaceae", "scientificName": "Aristida capillacea", "scientificNameAuthorship": "Lam.", "genus": "Aristida", "subgenus": "", "specificEpithet": "capillacea", "verbatimTaxonRank": "", "infraspecificEpithet": "", "identifiedBy": "", "recordedBy": "Rogers McVaugh", "recordNumber": "21070", "verbatimEventDate": "1960-11-16", "habitat": "Savannah-like grassland on shallow grovelly soil, with Curatella and Byrsonima. In tufts along the trail, in shade weedy", "occurrenceRemarks": "", "associatedTaxa": "", "country": "Mexico", "stateProvince": "Jalisco", "county": "", "municipality": "", "locality": "El Refugio; 8 mi SW of la Resolana, road to La Huerta", "decimalLatitude": "19.5595", "decimalLongitude": "-104.529", "verbatimCoordinates": "", "minimumElevationInMeters": "", "maximumElevationInMeters": ""}