public static final boolean registerRequest(final String urlString) {
    if (!urlString.startsWith("crimbo10.php")) {
      return false;
    }

    String action = GenericRequest.getAction(urlString);
    String message = null;

    // We want to log certain simple visits
    if (action == null) {
      message = Crimbo10Request.visitLocation(urlString);
    }

    // Buy stuff in the CRIMBCO Gift Shop
    else if (action.equals("buygift")) {
      // Let CRIMBCOGiftShopRequest claim this
      return CRIMBCOGiftShopRequest.registerRequest(urlString);
    }

    // Unknown action
    else {
      return false;
    }

    if (message == null) {
      return true;
    }

    RequestLogger.printLine();
    RequestLogger.updateSessionLog();
    RequestLogger.printLine(message);
    RequestLogger.updateSessionLog(message);

    return true;
  }
  public static final void parseResponse(final String location, final String responseText) {
    if (!location.startsWith("crimbo10.php")) {
      return;
    }

    String action = GenericRequest.getAction(location);
    if (action == null || action.equals("buygift")) {
      CRIMBCOGiftShopRequest.parseResponse(location, responseText);
      return;
    }
  }
  public static void parseResponse(final String location, final String responseText) {
    CoinmasterData data = VendingMachineRequest.VENDING_MACHINE;
    String action = GenericRequest.getAction(location);
    if (action == null) {
      if (location.indexOf("place=vendo") != -1) {
        // Parse current coin balances
        CoinMasterRequest.parseBalance(data, responseText);
      }

      return;
    }

    CoinMasterRequest.parseResponse(data, location, responseText);
  }