docs: function (key, value, updateDomElement, keepState, sourceEvent, suppressAutoVerify) {
  			if (!arrayContains(acceptableFields, key) || !domMap[key]) { // Skip "id" and other unacceptable fields, also skip fields that weren't included in mapping
  				return false;
  			}
  
  			if (!fields[key])
  				fields[key] = {};
  
  			if (typeof fields[key].dom !== "undefined" && fields[key].dom.tagName === "SELECT" && key !== "administrative_area" && fields[key].dom.selectedIndex >= 0) {
  				value = fields[key].dom[fields[key].dom.selectedIndex].text.replace(/<|>/g, "");
  			} else {
  				value = value.replace(/<|>/g, ""); // prevents script injection attacks (< and > aren't in addresses, anyway)
  			}
  
  			var differentVal = fields[key].value != value;
  
  			fields[key].undo = fields[key].value || "";
  			fields[key].value = value;
  
  			if (fields[key].dom && updateDomElement) {
  				if (fields[key].dom.tagName === "INPUT") {
  					$(fields[key].dom).val(value);
  				} else if (fields[key].dom.tagName === "SELECT" && key === "administrative_area" && self.isDomestic()) {
  					var selectedVal = "";
  					$(fields[key].dom).find("option").each(function () {
  						if ($(this).text().toUpperCase() === value) {
  							selectedVal = $(this).val();
  							return false;
  						} else {
  							for (var stateName in allStatesByName) {
  								if (allStatesByName[stateName] === value && stateName === $(this).text().toUpperCase()) {
  									selectedVal = $(this).val();
  									return false;
  								}
  							}
  						}
  					});
  					$(fields[key].dom).val(selectedVal);
  				}
  			}
  
  			var eventMeta = {
  				sourceEvent: sourceEvent, // may be undefined
  				field: key,
  				address: self,
  				value: value,
  				suppressAutoVerification: suppressAutoVerify || false
  			};
  
  			if (differentVal && !keepState) {
  				ui.unmarkAsValid(self);
  				var uiTag = config.ui && config.smartyTag ? $(".smarty-ui .smarty-tag.smarty-addr-" + id) : undefined;
  				if (config.target.indexOf("US") >= 0 && config.target.indexOf("INTERNATIONAL") < 0) {
  					if (self.isDomestic()) {
  						if (uiTag && !uiTag.is(":visible"))
  							uiTag.show(); // Show checkmark tag if address is in US
  						self.unaccept();
  						trigger("AddressChanged", eventMeta);
  					} else {
  						if (uiTag && uiTag.is(":visible"))
  							uiTag.hide(); // Hide checkmark tag if address is non-US
  						self.accept({
  							address: self
  						}, false);
  					}
  				} else if (config.target.indexOf("INTERNATIONAL") >= 0 && config.target.indexOf("US") < 0) {
  					if (uiTag && !uiTag.is(":visible"))
  						uiTag.show(); // Show checkmark tag if address is in US
  					self.unaccept();
  					trigger("AddressChanged", eventMeta);
  				} else if (config.target.indexOf("US") >= 0 && config.target.indexOf("INTERNATIONAL") >= 0) {
  					if (uiTag && !uiTag.is(":visible"))
  						uiTag.show(); // Show checkmark tag if address is in US
  					self.unaccept();
  					trigger("AddressChanged", eventMeta);
  				}
  			}
  
  			return true;
  		}