code: protected String guessTerritory() {
          String result;
          // pass through locales to see if there is a territory.
          for (ULocale locale : getLocales()) {
              result = locale.getCountry();
              if (result.length() != 0) {
                  return result;
              }
          }
          // if not, guess from the first language tag, or maybe from
          // intersection of languages, eg nl + fr => BE
          // TODO: fix using real data
          // for now, just use fixed values
          ULocale firstLocale = getLocale(0);
          String language = firstLocale.getLanguage();
          String script = firstLocale.getScript();
          result = null;
          if (script.length() != 0) {
              result = language_territory_hack_map.get(language + "_" + script);
          }
          if (result == null) {
              result = language_territory_hack_map.get(language);
          }
          if (result == null) {
              result = "US"; // need *some* default
          }
          return result;
      }
docs: This function can be overridden by subclasses to use different heuristics.
  
  @hide draft / provisional / internal are hidden on Android